Meta channel media system control and advertisement technology

ABSTRACT

Media system control technology, in which an advertisement on a selected content channel being experienced by a user using a media system is detected, advertisement preferences of the user are accessed from electronic storage, and secondary content is selected based on the accessed advertisement preferences of the user. The secondary content is substituted for the advertisement on the selected content channel, and the media system is controlled to output the secondary content instead of the advertisement.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation (and claims the benefit of priorityunder 35 USC 120) of U.S. application Ser. No. 12/366,372, filed Feb. 5,2009, now allowed as U.S. Pat. No. 8,726,310, which is incorporated byreference in its entirety for all purposes.

FIELD

The present disclosure generally relates to media device control.

BACKGROUND

Television viewers today are exposed to an overwhelming amount ofinformation and are challenged by the degree of interaction andpersonalization needed to manage this massive amount of information. Inan era of digital television, a user may be confused by an array oftechnology including traditional analog televisions, DVRs (Digital VideoRecorders), PVRs (Personal Video Recorders), media centers, EPG(Electronic Program Guide)-based systems, Internet-related content, andtraditional remote control devices.

SUMMARY

In one aspect, a method of controlling a media system in handlingadvertisements includes detecting an advertisement on a selected contentchannel being experienced by a user using a media system and accessing,from electronic storage, advertisement preferences of the user. Themethod also includes selecting secondary content based on the accessedadvertisement preferences of the user, substituting the secondarycontent for the advertisement on the selected content channel, andcontrolling the media system to output the secondary content instead ofthe advertisement.

Implementations may include one or more of the following features. Forexample, the method may include accessing, from electronic storage,advertisement preferences of the user that indicate the user prefersnon-advertisement programming to at least some advertisements andselecting non-advertisement programming being provided on a firstcontent channel other than the selected content channel. The method alsomay include substituting the non-advertisement programming for theadvertisement and controlling the media system to output thenon-advertisement programming being provided on the first contentchannel instead of the advertisement being provided on the selectedcontent channel.

The method may include accessing, from electronic storage, advertisementpreferences that include a content channel priority list and selectingthe content channel that is ranked highest on the content channelpriority list and that is providing non-advertisement programming whenthe advertisement is detected. The selected content channel may be aselected meta-channel that, when the advertisement is detected, definesa selected content entry corresponding to a broadcast television channeland the first content channel is a first meta-channel that, when theadvertisement is detected, defines a first content entry correspondingto an Internet video. The method also may include controlling an outputdevice, included in the media system, to change an input source settingof the output device from a first setting configured to render contentfrom a receiver outputting the broadcast television channel to a secondsetting configured to render content from a media adapter outputting theInternet video and controlling the media adapter to download theInternet video from a remote server, decode the Internet video, andoutput the Internet video to the output device.

In some examples, the selected content channel may be a selectedmeta-channel that, when the advertisement is detected, defines aselected content entry corresponding to a selected broadcast televisionchannel and the first content channel may be a first meta-channel that,when the advertisement is detected, defines a first content entrycorresponding to a first broadcast television channel. In theseexamples, the method may include controlling a receiver, included in themedia system, to change from outputting the selected broadcasttelevision channel to outputting the first broadcast television channel.

In some implementations, the method may include accessing, fromelectronic storage, advertisement preferences of the user that indicatethe user prefers local advertisements and that include geographiclocation information for the user and selecting a local advertisementbased on the geographic location information for the user. In theseimplementations, the method may include substituting the localadvertisement for the advertisement and controlling the media system tooutput the local advertisement instead of the advertisement beingprovided on the selected content channel. Further, in theseimplementations, the selected content channel may be a meta-channelthat, when the advertisement is detected, defines a content entrycorresponding to a broadcast television channel. The local advertisementmay be served by a meta-channel service provider over a network. Inthese implementations, the method may include controlling an outputdevice, included in the media system, to change an input source settingof the output device from a first setting configured to render contentfrom a receiver outputting the broadcast television channel to a secondsetting configured to render content from a media adapter outputting thelocal advertisement and controlling the media adapter to download thelocal advertisement from the meta-channel service provider and outputthe local advertisement to the output device.

The method may include accessing, from electronic storage, advertisementpreferences of the user that indicate at least one type of advertisementpreferred by the user and selecting, from among multiple potentialadvertisements, a preferred advertisement based on the at least one typeof advertisement preferred by the user. The method also may includesubstituting the preferred advertisement for the advertisement andcontrolling the media system to output the preferred advertisementinstead of the advertisement being provided on the selected contentchannel. The selected content channel may a meta-channel that, when theadvertisement is detected, defines a content entry corresponding to abroadcast television channel and the preferred advertisement may beserved by a meta-channel service provider over a network. The methodfurther may include controlling an output device, included in the mediasystem, to change an input source setting of the output device from afirst setting configured to render content from a receiver outputtingthe broadcast television channel to a second setting configured torender content from a media adapter outputting the preferredadvertisement and controlling the media adapter to download thepreferred advertisement from the meta-channel service provider andoutput the preferred advertisement to the output device.

In some examples, the advertisement may be a video-based advertisementthat includes video of a first length of time. In these examples, themethod may include selecting an alternative video-based advertisementthat includes video of a second length of time that is less than thefirst length of time and a non-video advertisement filler andsubstituting a combination of the alternative video-based advertisementand the non-video advertisement filler for the advertisement on theselected content channel. The method also may include controlling themedia system to output the alternative video-based advertisement for thesecond length of time and controlling the media system to output thenon-video advertisement filler for the remainder of the first length oftime. In these examples, the method may include, after controlling themedia system to output the non-video advertisement filler for theremainder of the first length of time that is greater than the secondlength of time, controlling the media system to return to outputtingnon-advertisement content defined by the selected content channel suchthat the return to non-advertisement content from the combination of thealternative video-based advertisement and the non-video advertisementfiller corresponds to the return to non-advertisement content from thevideo-based advertisement.

In another aspect, a system includes at least one electronic storagedevice configured to store advertisement preferences of a user and atleast one processor configured to perform operations including detectingan advertisement on a selected content channel being experienced by theuser using a media system and accessing, from the electronic storagedevice, the advertisement preferences of the user. The operations alsoinclude selecting secondary content based on the accessed advertisementpreferences of the user, substituting the secondary content for theadvertisement on the selected content channel, and controlling the mediasystem to output the secondary content instead of the advertisement.

In yet another aspect, a method of controlling a media system inhandling advertisements includes controlling a media system to outputsecondary content when advertisement programming is detected on aselected content channel being experienced by a user using a mediasystem and monitoring for completion of the detected advertisementprogramming on the selected content channel. The method also includesaccessing advertisement return preferences of the user and, in responseto identifying completion of the detected advertisement programming onthe selected content channel based on the monitoring, controlling themedia system based on the advertisement return preferences of the user.

Implementations may include one or more of the following features. Forexample, the method may include controlling the media system to returnto the selected content channel and render content defined by theselected content channel immediately in response to identifyingcompletion of the detected advertisement programming on the selectedcontent channel.

In some examples, the method may include controlling the media system tomaintain a secondary content channel providing the secondary contentuntil detection of advertisement programming on the secondary contentchannel. In these examples, in response to detection of advertisementprogramming on the secondary content channel, the media system may becontrolled to return to the selected content channel and render contentdefined by the selected content channel.

In response to detection of advertisement programming on the secondarycontent channel, advertisement preferences of the user that include acontent channel priority list that ranks alternative content channels toprovide when advertisements are detected may be accessed, a returncontent channel that is ranked highest on the content channel prioritylist and that is providing non-advertisement programming upon detectionof the advertisement on the secondary content channel may be selected,and the media system may be controlled to render content defined by thereturn content channel. A return content channel may be selected that isdifferent than the selected content channel.

The method may include controlling the media system to maintain asecondary content channel providing the secondary content. The methodalso may include controlling the media system to provide a notificationto the user indicating that the detected advertisement programming onthe selected content channel has completed.

In another aspect, a system includes at least one electronic storagedevice configured to store advertisement return preferences of a userand at least one processor configured to perform operations that includecontrolling a media system to output secondary content whenadvertisement programming is detected on a selected content channelbeing experienced by a user using a media system. The operations alsomay include monitoring for completion of the detected advertisementprogramming on the selected content channel and accessing, from the atleast one electronic storage device, advertisement return preferences ofthe user. In response to identifying completion of the detectedadvertisement programming on the selected content channel based on themonitoring, the media system may be controlled based on theadvertisement return preferences of the user.

The details of one or more implementations are set forth in theaccompanying drawings and the description, below. Other potentialfeatures and advantages of the disclosure will be apparent from thedescription and drawings, and from the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a contextual diagram demonstrating general meta-channel usage.

FIG. 2 illustrates a meta-channel system.

FIGS. 3 to 9, 11, 13, 15, 18 to 22, 25, and 26 are flowcharts ofexemplary processes.

FIG. 10 illustrates a system for providing secondary content.

FIGS. 12 and 14 illustrate user interfaces.

FIG. 16 is a contextual diagram illustrating a process of enabling amedia system to render content.

FIG. 17 illustrates a system for rendering content.

FIGS. 23A-C are contextual diagrams illustrating the downloading ofcontent for viewing using a media system.

FIG. 24 illustrates a system for downloading content.

FIG. 27 illustrates components of an exemplary computer processingsystem.

Like reference numbers represent corresponding parts throughout.

DETAILED DESCRIPTION

FIG. 1 is a contextual diagram 100 demonstrating general meta-channelusage. A user 102 may view a meta-channel guide 104, which may bedisplayed on a television screen 106. The guide 104, which may be anelectronic program guide, may display information about content to bedisplayed on one or more meta-channels 108 a-g. The guide 104 maydisplay a schedule of content to be presented on a particular day of theweek (e.g., Sunday).

Meta-channels 108 a-g each identify content entries to be presented on arespective meta-channel, and indicate an order in which the contententries are to be presented on that meta-channel. Content entries mayrefer to various types of content from various content providers. Eachcontent entry relates to content made available by a specific contentprovider. A content provider may be, for example, a televisionbroadcaster (e.g., MSO (Multiple System Operator), cable, satellite,local) or a web server serving internet video. A content entry may referto a television broadcast provided by a broadcaster on a particularchannel at a specific time, to a URL (Uniform Resource Locator) of anInternet video resource, or to some other type of content.

Content entries may be assigned to meta-channels by an end consumerand/or by a meta-channel publisher (referred to as a “content jockey”).The end consumer or content jockey may assign and organize contententries in a particular meta-channel based on any criteria the endconsumer or content jockey chooses (e.g., an end consumer may define ameta-channel that selects the end consumer's favorite or preferredcontent that is available at each time frame).

In some examples, content entries may be assigned to meta-channels andorganized together based on a particular type of content. For instance,the meta-channel 108 a presents drama-related content, the meta-channel108 b presents content related to a specific musician, the meta-channel108 c presents content related to a second, different musician, themeta-channel 108 d presents football-related content, the meta-channel108 e presents stunt-related content, the meta-channel 108 f presentssports-related content, and the meta-channel 108 g presentsentertainment-related content. When an end consumer is interested inviewing a particular type of content, the end consumer may select themeta-channel corresponding to the particular type of content (e.g., theend consumer selects the meta-channel 108 d when the end consumer isinterested in viewing football-related content).

As displayed in the guide 104, a first content entry 110 indicates thata first drama program received from an MSO channel 15 is scheduled to bepresented on the meta-channel 108 a from 1 p.m. to 3 p.m. A secondcontent entry 112 indicates that a second drama program received from anMSO channel 22 is scheduled to be presented on the meta-channel 108 afrom 3 p.m. to 4:30 p.m. A third content entry 114 indicates that athird drama program received from an MSO channel 13 is scheduled to bepresented on the meta-channel 108 a from 4:30 p.m. to 7 p.m. The programindicated by content entry 114 is originally scheduled to be broadcaston the MSO channel 13 starting at 4 p.m., so the program may be recordedonto a DVR (Digital Video Recorder) and played from the DVR recording onthe meta-channel 108 a (e.g., with a 30-minute delay from it's livebroadcast). A fourth content entry 116 indicates that a fourth dramaprogram 116 received from a MSO channel 9 is scheduled to be presentedon the meta-channel 108 a from 7 p.m. to 8 p.m.

When an end consumer selects to experience the meta-channel 108 a, theend consumer's media system is controlled to, without humanintervention, display the content defined by the content entries in themeta-channel 108 a. For instance, at 1 p.m., the media system iscontrolled to display MSO channel 15 (e.g., a television tuner iscontrolled to tune to MSO channel 15 and an input source of a displaydevice is controlled to display a video signal from the televisiontuner). The media system displays MSO channel 15 until 3 p.m. at whichtime the media system is controlled to change from MSO channel 15 to MSOChannel 22 (e.g., the television tuner is controlled to tune to MSOchannel 22). At 4 p.m., the media system is controlled to maintain thedisplay of MSO Channel 22, but also begins recording MSO channel 13using a DVR. At 4:30 p.m., the media system is controlled to display thecontent recorded on the DVR from MSO Channel 13 and, at 7 p.m., themedia system is controlled to display MSO channel 9.

As mentioned, content presented on a meta-channel may be provided bycontent providers other than a traditional television broadcaster. Forexample, a content entry 118 indicates that a documentary program isscheduled to be presented on the meta-channel 108 b from 1 p.m. to 4p.m. The program indicated by the content entry 118 is received from an“on demand” service, such as from a service offered by a cabletelevision operator. A content entry 120 indicates that a concert videoreceived from an IP (Internet Protocol) video source is scheduled to bepresented on the meta-channel 108 b from 4 p.m. to 6 p.m. The contententry 120 can refer to, for example, a URL of an Internet video resourceserved by a web server (e.g., www.youtube.com). A content entry 122indicates that a concert interview is to be presented on themeta-channel 108 b from 6 p.m. to 8 p.m. The interview is to be receivedfrom a P2P (Peer to Peer) Internet video source. P2P streaming is atechnology that allows for the distribution of content between clientcomputers without the need for a central server.

In addition to video content, other forms of content, such as audiocontent, also can be presented on a meta-channel. For example, a contententry 124 indicates that an audio sample of a musician is scheduled tobe presented on the meta-channel 108 c from 4 p.m. to 7 p.m. An audiosample can be played from a CD player included in a media system, from aP2P audio stream, or from a digital recording stored on a device in amedia system, to name a few examples.

When a selected meta-channel includes multiple forms of content (e.g.,television broadcasts, On Demand content, IP video sources, audiosamples, P2P content, content from local media players, etc.), the mediasystem is controlled to transition between the multiple forms of contentwithout human intervention. For instance, the user perceives the contentchanging similar to how a user perceives content changing on a broadcasttelevision channel despite the content being delivered from multiple,different providers in multiple, different forms. In some examples, themedia system is controlled to change an input video/audio source of anoutput device (e.g., video display device, a speaker, etc.) to outputthe form of content presently defined by the selected meta-channel.

In some implementations, as illustrated in the guide 104, a contententry 126 indicates that a first live football game received from MSOchannel 5 is scheduled to be presented on the meta-channel 108 d from 1p.m. to 4 p.m., and a content entry 128 indicates that a second livefootball game received from MSO channel 9 is scheduled to be presentedon the meta-channel 108 d from 4 p.m. to 7 p.m. The selection ofcontent, such as the selection of the football game indicated by thecontent entry 126, may be dynamically chosen based on a stored user'spreferences, such as preferences for a particular team and/or region ofthe country. For example, a user's preferences may indicate a preferencefor a team or teams playing in the game offered by MSO channel 5 at 1p.m. over a team or teams playing in a game offered by MSO channel 9,also at 1 p.m. The meta-channel 108 d may be configured to present thelive game from MSO channel 5 at 1 p.m. and to present, starting at 7p.m., a recording of the game offered earlier by MSO channel 9 (asindicated by a content entry 130). The particular games selected and/orthe order of the games may be dynamically determined based on the user'sprofile information (e.g., favorite team preference, region data, etc.).As such, a first user with first profile information may receivedifferent games (or a different order of games) when viewing themeta-channel 108 d than a second user with second profile informationthat is also viewing the meta-channel 108 d.

Other meta-channel configurations are possible. For example, a contententry 132 indicates that a basketball sporting event received from MSOchannel 6 is scheduled to be presented on the meta-channel 108 f. Themeta-channel 108 f may be configured so that only the live game portionof the sporting event is presented, and that other content may bepresented on the meta-channel 108 f during pre-game and post-gameportions (e.g., pre and/or post-game commentary that may be ordinarilyaired live on the MSO channel 6).

For example, a content entry 134 indicates that a highlight videoreceived from an Internet video source is scheduled to be presented onthe meta-channel 108 f, from approximately 1 p.m. to 1:30 p.m. (e.g., inplace of pre-game commentary that may be airing live on MSO channel 6).The highlight video may be interrupted once the live game portion of thesporting event indicated by the content entry 132 begins. A contententry 136 indicates that the remainder of the highlight video isscheduled to be presented on the meta-channel 108 f once the live gamecoverage has ended (e.g., from approximately 2:50 p.m. until 3:40 p.m.,in place of post-game commentary that may be airing live on MSO channel6). A gap 138 appears on the guide 104, indicating that the highlightvideo may end before the start of the next program scheduled to bepresented at 5 p.m. on the meta-channel 108 f (e.g., as indicated bycontent entry 140). During the time period represented by the gap 138,the television screen may be blank, or other content may be presented,such as a static advertising display, advertising content received froman Internet source, audio music, etc.

A meta-channel may be defined to display content presented on anothermeta-channel. For example, the content entry 140 indicates that afootball game is scheduled to be presented on the meta-channel 108 ffrom 4 p.m. to 7 p.m., where the source of the football game content isthe meta-channel number 4 (e.g., meta-channel 108 d). In other words, inthis example, when the user tunes to either the meta-channel 108 d orthe meta-channel 108 f between 4 p.m. and 7 p.m., the football gamebroadcast received from MSO channel 9 is presented on the televisionscreen 106.

As indicated by a content entry 142, an entertainment show received fromMSO channel 7 is scheduled to be presented on the meta-channel 108 gstarting at 4 p.m. As indicated by a content entry 144, theentertainment show indicated by the content entry 142 is interrupted bya video program received from an Internet source. The meta-channel 108 gmay be configured so that content being presented is interrupted by andreplaced with other content if an event occurs. For example, aninterrupt event can be defined such that if a new Internet videorelating to a particular topic is published, the Internet video isdownloaded, decoded and presented on the meta-channel 108 g. The contentthat was interrupted can be recorded onto a DVR and the unseen portioncan be scheduled to be viewed at a later time (e.g., a content entry 146indicates that the remainder of the interrupted entertainment show isscheduled to be presented starting at 7 p.m. on the meta-channel 108 g).

The user 102 may navigate the guide 104, for example by usingdirectional buttons on a remote control 107, to change selection of acontent entry. The user may, for example, press a button on the remotecontrol 107 to invoke an action to be performed relating to the selectedcontent entry. For example, the user may press a button to switch to themeta-channel indicated by the selected content entry (which, for contententries currently being presented (e.g., now playing on themeta-channel), may result in the rendering of the selected content onthe television screen 106). As another example, a user may press abutton to record a program represented by the selected content entry toa DVR, or may press a button to get more detailed information about aprogram represented by the selected content entry.

Switching of content sources may automatically occur, depending on thearrangement of scheduled content entries in a meta-channel and/ordepending on the forms of content being presented as a user switches toand from different meta-channels. For example, a content entry 148indicates that a first stunt video received from a first Internet videosource is scheduled to be presented on the meta-channel 108 e. When thestunt video indicated by the content entry 148 completes, a second stuntvideo received from a second Internet video source is scheduled to bepresented on the meta-channel 108 e, as indicated by a content entry150.

While presenting Internet video content, a media system may beconfigured to receive content from a digital media adapter (DMA). If theuser 102 is watching the meta-channel 108 e between 1 p.m. and 4 p.m., aDMA may download the first stunt video from the first video source, andmay subsequently download the second stunt video from the second videosource. In other words, content for adjacent content entries may bereceived from different sources (different Internet video sources), butthe type of content (e.g., Internet video) may remain the same, whichmay result in the maintaining of an input source setting of a displaydevice to render content from a DMA. As another example, if the userwatches the meta-channel 108 a between 1 p.m. and 4 p.m., an inputsource may be maintained at a setting to receive content from an MSOreceiver, but the MSO receiver may be automatically tuned to switch fromMSO channel 15 to MSO channel 22 at 3 p.m.

In contrast, if, for example, the user manually switches (e.g., bypressing a button on the remote 107) from the meta-channel 108 e to themeta-channel 108 d at 2 p.m., the display of the stunt video indicatedby the content entry 148 may be replaced by the display of the footballgame indicated by the content entry 126. Since the source type of thecontent indicated by the content entry 126 (e.g., an MSO channel) isdifferent than the source type of the content indicated by the contententry 148 (e.g., an Internet video), an input source setting of adisplay device may be changed and the media system may be controlled toreceive and output content from the new type of source. As anotherexample, if the user watches the meta-channel 108 b between 1 p.m. and 5p.m., the media system may switch an input source from an on-demandvideo source to an Internet video source, to present the concert video(Internet video) indicated by the content entry 120 after thedocumentary (on-demand video) indicated by the content entry 118.

By experiencing content using meta-channels, an end consumer may reducethe overwhelming number of content options available to a manageablenumber for user selection. The task of identifying interesting contentand reviewing the overwhelming number of content options may bedistributed among users of the meta-channel (e.g., content jockeys andshared user meta-channels) and thereby reduce the burden on individualusers of identifying interesting content. Instead, an individual usermay select a small subset of meta-channels in which the user isinterested and then select among those meta-channels when experiencingcontent. Individual users may select meta-channels based on the subjectmatter of the meta-channel or affinity for the content jockey thatmanages the meta-channel.

In addition, organizing many different forms of content in singlechannels may enhance the viewing experience of users by, for example,reducing the amount of time/expertise needed to select and perceivedifferent forms of content. Specifically, users need not move betweendifferent devices or locations to perceive content of different forms,as the media system is automatically controlled to perform theseoperations for the user. Moreover, the different forms of content may beavailable in a single location or interface as opposed to multiplelocations or interfaces, each being directed to a particular form ofcontent.

FIG. 2 illustrates a meta-channel system 200. Content is rendered on atelevision 202. The television 202 may be analog or digital. In someimplementations, another type of display other than a television may beused (e.g., a computer monitor). Digital and/or analog video content maybe received through an AV (Audio/Video) port from one or morebroadcasters 204, such as from one or more MSO's.

Video content also may be received from an Internet DMA 206. TheInternet DMA 206 may receive Internet video content over the network208, from one or more Internet video sources 210. An Internet videosource 210 may be source that makes a video file or a video feed (e.g.,podcast) available over the Internet, or may be another type of peer topeer resource, such as a BitTorrent file. The Internet DMA 206 may beconfigured to store (e.g., cache) video content. The network 208 may beone or more public or private, wired or wireless networks, such as theInternet, or may be a Session Initiated Protocol (SIP) network such asthe PsipTN network offered by TelTel.

A meta-channel definition may refer to one or more content entries 211.A content entry 211 is a collection of information about program contentto be displayed on the television 202. For example, for program contentreceived from an MSO 204, a content entry 211 may include informationregarding the program time, title, description, channel number, starttime and stop time. As another example, a content entry 211 may refer toan Internet feed of an EPG (Electronic Program Guide) which can includeor provide information relating to program content received from an MSO204. For program content received from an Internet video source 210, acontent entry 211 may include, for example, the URL of the Internetvideo resource 210 or the name and/or address of a BitTorrent torrentfile. A content entry 211 also may include other information, such as aprogram's genre or classification (e.g., children's programming, soapopera, sporting event, entertainment, etc.) or rating (e.g., Nielsenrating, Internet blog rating).

A content entry server 212 may be a server that adds content entries 211to the meta-channel system 200 to enable users to include the addedcontent entries in meta-channels. For instance, the content entry server212 may access the content entries 211 from various third party sources(e.g., EPG's, Internet video providers, rating service providers, etc.)and may store the accessed content entries in a repository residing inthe content entry server 212 or the meta-channel database 222.

An administrator 213 can use an administrator portal user interface 214to manage the content entries 211 added to the meta-channel system 200using the content entry server 212. For example, the administrator 213may select which content entries to add to the meta-channel system 200(e.g., the administrator 213 may filter out content entriescorresponding to inappropriate content) and may select which contententries to remove from the meta-channel system 200 (e.g., theadministrator 213 may remove content entries corresponding to relativelyold content that has already been broadcast or has been available on themeta-channel system 200 for a relatively long period of time with littleinterest). The administrator 213 may use the administrator portal userinterface 214 to directly manage the content entries available on themeta-channel system 200 or may use the administrator portal userinterface 214 to define a set of rules that the content entry server 212automatically implements to manage the content entries available on themeta-channel system 200.

A meta-channel may be defined, for example, by an end user 215 or by a“content jockey” 216. A content jockey 216 creates and publishesmeta-channel definitions to be made available to users 215. A contentjockey portal server 218 may provide a content jockey portal userinterface 220 to the content jockey 216. Using the content jockey portal220, the content jockey 216 may define a meta-channel by selectingcontent entries 211, indicating content to air at specific days andtimes on a defined meta-channel. For example, the content jockey 216 mayselect content entries pertaining to a category of content or related toa particular user group, such as content related to a particularentertainer, sporting team or game. A content jockey also can create andmake available custom video content and/or advertising. Meta-channelsdefined by the content jockey 216 may be stored in a meta-channeldatabase 222.

A user portal server 224 may provide a user portal user interface 226 tothe user 215. Before defining meta-channels, the user 215 may need toregister (using, for example, the user portal 226) for a meta-channelservice. When registering, the user 215 may provide a list of MSOchannels available to the user 215. Using the user portal 226, the user215 may define meta-channels and/or may select to use, or subscribe to,meta-channels defined by the content jockey 216. The selection ofcontent entries allowed for defining meta-channels by a user may belimited, for MSO content, to content entries related to MSO channelsavailable to the user 215. Similar to the content jockey 216, the user215 may define one or more meta-channels by selecting one or morecontent entries 211 to air on a specific meta-channel at a specific dayand time. The user may assign a channel number (e.g., “3”) to correspondto a defined meta-channel. Meta-channels defined by the user 215 may bestored in the meta-channel database 222.

A meta-channel server 230 can communicate, over the network 208,meta-channel information including a list of meta-channels defined bythe user 215 to a meta-channel base station 232. The meta-channel basestation 232 may store (e.g., cache) meta-channel information receivedfrom the meta-channel server 230. The meta-channel base station 232 maycommunicate wirelessly with one or more remote control devices 234. Theremote control devices 234 may communicate (e.g., using Infrared (IR)technology) with the television 202. The remote control devices 234 mayinclude a small display screen.

The meta-channel base station 232 may be configured to receive a signalfrom a remote control device 234 indicating a channel numbercorresponding to a button pressed on the remote control device 234. Themeta-channel base station 232 may be configured to forward the signal tothe meta-channel server 230. The meta-channel server 230 may beconfigured to map a received signal to a user's meta-channel and toidentify a content entry defined by the user's meta-channel. Themeta-channel server 230 may be configured to send a control command tothe meta-channel base station 232 indicating an MSO channelcorresponding to an identified content entry. The meta-channel basestation 232 may be configured to forward the control signal to theremote control device 234 a and the remote control device 234 a may beconfigured to send an IR signal to the television 202, indicating achannel change. The television 202 may be configured to receive the IRsignal and may be configured to tune to the specified channel (e.g.,channel 22) to display the broadcast television content.

Each of the remote control devices 234 a, 234 b, and 234 c may beassigned to a particular user (e.g., a mother, a father, and a child).Accordingly, when the meta-channel base station 232 receives a commandfrom one of the remote control devices 234 a, 234 b, and 234 c, themeta-channel base station 232 (or the meta-channel server 230) mayidentify the particular user assigned to the remote control and use thecustomized meta-channel configured for the particular user.

For example, the remote control device 234 a may be assigned to a fatheruser and the remote control device 234 b may be assigned to a motheruser. In this example, when the meta-channel base station 232 receives acommand from the remote control device 234 a, the command is mapped tometa-channel information customized by the father user (e.g., a commandto tune to meta-channel three may map to a sports meta-channel). Whenthe meta-channel base station 232 receives a command from the remotecontrol device 234 b, the command is mapped to meta-channel informationcustomized by the mother user (e.g., a command to tune to meta-channelthree may map to a soap opera meta-channel).

FIG. 3 is a flowchart illustrating a computer-implemented process 300for controlling a media device. Briefly, the computer-implementedprocess 300 includes storing meta-channel information, receivingselection of a meta-channel, accessing meta-channel informationcorresponding to the selection, mapping the meta-channel selection tocontent defined by the selected meta-channel, and controlling a mediadevice to render content mapped to by the selected meta-channel.

In further detail, when the process 300 begins, meta-channel informationis stored (302). For example, meta-channel information may definemultiple meta-channels, where each meta-channel may refer to contententries and define an order in which content entries are to be presentedon a particular meta-channel. A content entry relates to contentavailable from a content provider, such as a television broadcaster oran Internet video source. Meta-channel information may be stored in acentral repository and may be transferred to and cached on ameta-channel base station residing, for example, in a user's home. Themeta-channel information may include information needed to display themeta-channel guide 104 shown in FIG. 1.

After meta-channel information is stored, a selection of a meta-channelis received (304). For example, a user may press a button on a remotecontrol device indicating selection of a meta-channel number (e.g.,channel “3”). The remote control device may communicate an input controlcommand indicating the selected channel number to the meta-channel basestation. The meta-channel base station may forward the input controlcommand to a meta-channel server.

After the selection of a meta-channel is received, meta-channelinformation corresponding to the selection is accessed (306). Forexample, an input control command corresponding to a selectedmeta-channel number (e.g., channel “3”) may be received at themeta-channel server. In response to receipt of the input controlcommand, the meta-channel server accesses meta-channel information thatcorresponds to channel “3” for the user that entered the command. Themeta-channel server may access the meta-channel information from ameta-channel database managed by the meta-channel server.

Next, the meta-channel selection is mapped to content defined by theselected meta-channel (308). For example, a content entry correspondingto the selected meta-channel and to the current day and time may beaccessed, to identify content currently scheduled to be presented on theselected meta-channel. In some implementations, broadcast televisioncontent received from a specific cable television channel may bescheduled to be presented and the meta-channel selection is mapped tothe broadcast television content. Other examples include mapping theselection to content relating to an Internet video, audio CD music, orcontent from an “on-demand” cable television service.

A media device is controlled to render content mapped to the selectedmeta-channel (310). For example, a television receiver may be tuned to aspecific channel indicated by the mapped content entry and a televisionbroadcast received from the television receiver may be rendered on atelevision display. As another example, an Internet video may bedownloaded to a media adapter, decoded and rendered on a televisiondisplay screen. The Internet video also may be streamed over a networkand rendered on the television display screen.

In some implementations, the Internet video may be downloaded to themedia adapter prior to selection of the meta-channel. In theseimplementations, the Internet video downloaded to the media adapterprior to selection of the meta-channel is used in rendering the Internetvideo on a television display screen. The Internet video downloaded tothe media adapter prior to selection of the meta-channel also may bepre-transcoded to enable faster rendering of the Internet video uponselection. Downloading and pre-transcoding the Internet video prior toselection of the meta-channel may enable enhanced user experience(particularly for relatively large files that have a relatively longdownload time) because the downloaded and pre-transcoded Internet videomay be rendered more quickly than if the Internet video needed to bedownloaded to the media adapter. The examples illustrated in FIGS. 16 to26 may be used in downloading and pre-transcoding the Internet videoprior to selection of the meta-channel.

FIG. 4 is a flowchart illustrating a computer-implemented process 400for switching meta-channels. Briefly, the computer-implemented process400 includes receiving user input to switch from a first meta-channel toa second meta-channel, identifying a first source of content defined bythe first meta-channel, identifying a second source of content definedby the second meta-channel, and determining whether the first sourcediffers from the second source. If it is determined that the firstsource differs from the second source, the process 400 further includeschanging the input source of the media device to the second source andcontrolling the second source to provide content defined by the secondmeta-channel. If it is determined that the first source does not differfrom the second source, the process 400 further includes maintaining theinput source of the media device as the first source and controlling thefirst source to provide content defined by the second meta-channel.

In further detail, when the process 400 begins, user input to switchfrom a first meta-channel to a second meta-channel is received (402).For example, a user may be watching a television which is currentlypresenting content associated with a first meta-channel number (e.g.,meta-channel “4”). The user may press a button on a remote controldevice indicating selection of a second meta-channel number (e.g.,meta-channel “3”). The remote control device may communicate an inputcontrol command indicating the selected meta-channel number to themeta-channel base station and the meta-channel base station may forwardthe input control command to a meta-channel server.

A first source of content defined by the first meta-channel isidentified (404). For example, currently-presented content on the firstmeta-channel may be identified, and a content source of thecurrently-presented content may be identified. The first source may bean MSO television broadcast or an Internet video resource. In someexamples, the first source may be identified as a television receiver(e.g., a cable set top box) that receives an MSO television broadcastand outputs a video signal of the MSO television broadcast or anInternet DMA that downloads an IP video and outputs a video signal ofthe IP video.

A second source of content defined by the second meta-channel isidentified (406). For example, content scheduled to be presented on thesecond meta-channel at the current day and time may be identified and acontent source of the scheduled content may be identified, such as anMSO television broadcast or an Internet video resource.

Next, it is determined whether the first source differs from the secondsource (408). For example, it may be determined that the first sourcediffers from the second source if the first source is an MSO televisionbroadcast and the second source is an Internet video resource. It may bedetermined that the first source does not differ from the second sourceif, for example, both the first source and the second source are MSOtelevision broadcasts. In some examples, the first and second sourcesmay be different when the sources render a similar type of content, butfrom different content providers or using different delivery mechanisms(e.g., the first source may be a cable set top box and the second sourcemay be a satellite television receiver).

If the first source differs from the second source, the input source ofthe media device is changed to the second source (410). For example, ifthe first source is an MSO television broadcast and the second source isan Internet video, then the input source of the media device may bechanged to be Internet video (e.g., receiving input from an Internetmedia adapter). As another example, if the first source is an Internetvideo and the second source is an MSO television broadcast, then theinput source of the media device may be changed to be MSO televisionbroadcast (e.g., receiving input from a television receiver). The inputsource may be changed automatically, without human intervention.

After the input source of the media device is changed, the second sourceis controlled to provide content defined by the second meta-channel(412), thereby ending the process 400. For example, if the second sourcewas changed to be Internet video, an Internet video resource may berendered on a television display. In this example, the Internet videoresource may be downloaded, decoded, and rendered in response to thechange in input source, may be streamed over a network in response tothe change in input source, or may be rendered in response to the changein input source using a version of the Internet video resourcedownloaded prior to the change in input source. As another example, ifthe second source was changed to be an MSO television broadcast, areceiver may be tuned to an MSO channel indicated by the second sourceof content, and the video content broadcast from the MSO channel may berendered on a television display.

If the first source does not differ from the second source (e.g., instep 408) the input source of the media device is maintained as thefirst source (414). For example, if the first source and second sourceare both MSO television broadcasts, the input source of the media deviceis maintained as MSO television broadcast (e.g., to continue to receiveinput from a television receiver). As another example, if the firstsource and second source are both Internet video, the input source ofthe media device is maintained as Internet video (e.g., to continue toreceive input from an Internet media adapter).

The first source is controlled to provide content defined by the secondmeta-channel (416), thereby ending the process 400. For example, if thecontent defined by the second meta-channel is Internet video, anInternet video resource may be rendered on a television display. In thisexample, the Internet video resource may be downloaded, decoded, andrendered in response to the change in meta-channel, may be streamed overa network in response to the change in meta-channel, or may be renderedin response to the change in meta-channel using a version of theInternet video resource downloaded prior to the change in meta-channel.As another example, if the content defined by the second meta-channel isan MSO television broadcast, a receiver may be tuned to an MSO channelindicated by the second source of content, and the video contentbroadcast from the MSO channel may be rendered on a television display.

FIG. 5 is a flowchart illustrating a computer-implemented process 500for defining a meta-channel. Briefly, the computer-implemented process500 includes acquiring channel information resources, receivingselections of content to include in a meta-channel at specific times,defining the meta-channel based on the selections of content, storingthe meta-channel definition, and making the meta-channel available toone or more users.

First, channel information resources are acquired (502). For example, anumber of content entries, each including a collection of informationabout program content, may be acquired, such as from an EPG. For programcontent received from an MSO, an acquired content entry may includeinformation on the program time, title, description, channel number,start time and stop time, etc. For program content received from anInternet video source, an acquired content entry may include, forexample, the URL of the Internet video resource, a description of thevideo, a title of the video, a source of the video, a length of thevideo, etc. An acquired content entry may also include otherinformation, such as a program's genre or classification (e.g.,children's programming, soap opera, sporting event, entertainment, etc.)or rating (e.g., Nielsen rating, Internet blog rating). Acquired contententries can be categorized and organized by various attributes, such asday and time of broadcast (for MSO content), genre, rating, etc.

Next, selections of content to include in a meta-channel at specifictimes are received (504). For example, an end user or a “content jockey”may use a user interface to select various content entries to include ina meta-channel. An end user or content jockey may select content entrieswhich relate to a particular category of interest (e.g., sports, aspecific entertainer, etc.). A user may select content to appear on themeta-channel at specific days and times, and/or on recurring days andtimes. A content entry may be selected for each time slot in ameta-channel. Content from various sources (e.g., MSO channel, Internetvideo, on-demand content, audio music, etc.) may be selected.

The meta-channel is defined based on the selections of content (506).For example, a meta-channel definition may be created which refers tothe selections of content to include in the meta-channel, and may alsoinclude an assigned meta-channel number, and optionally a user-assignedmeta-channel title and description.

The meta-channel definition is stored (508). For example, themeta-channel definition may be stored in a central repository ordatabase managed by a central meta-channel server.

The meta-channel is made available to one or more users (510). Forexample, for meta-channels defined by a content jockey, themeta-channels may be made available to all users or particular groups ofusers in the system. Meta-channels created by content jockeys may bemade available for selection by end users in an end-user user interface(e.g., to allow users to subscribe to content-jockey definedmeta-channels). For meta-channels defined by a specific end-user, themeta-channel may be made available to that user or may be made availableto all users or particular groups of users in the system if the specificend-user decides to share the meta-channel definition.

In some examples, meta-channel information may be downloaded or cachedto a meta-channel base station associated with the user. Themeta-channel base station may then communicate wirelessly with one ormore remote control devices, where a remote control device allows a userto select a meta-channel to view content presented on the meta-channel.

FIG. 6 is a flowchart illustrating a computer-implemented process 600for customizing a meta-channel lineup for a user. Briefly, thecomputer-implemented process 600 includes authenticating a user,presenting available meta-channels, receiving user input definingmeta-channel selection information, accessing user profile informationfor the user, customizing the user's meta-channel lineup based on themeta-channel selection information and the user's profile, receivinguser input identifying a device corresponding to the user, associatingthe user's customized meta-channel lineup with the identified device,and making the user's customized meta-channel lineup available to theuser when using the identified device.

First, a user is authenticated (602). For example, a user may provideuser identification and/or a password using an interface displayed on apersonal computer or by pressing buttons on a remote control device. Theentered user identification and password may be verified againstinformation that is stored in a meta-channel base station ormeta-channel server (e.g., the remote control device may communicate theentered user identification and password to the meta-channel basestation over a wireless connection, and the meta-channel base stationmay compare the entered information to stored information).

After a user is authenticated, available meta-channels are presented(604). For example, numbers corresponding to available meta-channels maybe presented on a display of a remote control device. As anotherexample, an electronic program guide, displaying availablemeta-channels, may be presented on a television screen. As yet anotherexample, the available meta-channels may be presented to a user using apersonal computer to manage the user's meta-channel information over anetwork.

After available meta-channels are presented, user input definingmeta-channel selection information is received (606). The user mayprovide user input to a personal computer selecting the particularmeta-channels in which the user is interested. The selectedmeta-channels are customized to the user's preference and made availableto the user when using the meta-channel system to experience content.The user may rank meta-channels and may define a number/name tocorrespond to the selected meta-channels.

In implementations in which a user manages meta-channels using a remotecontrol, the user may press a button on a remote control deviceindicating selection of a meta-channel to add to the user's customizedmeta-channel lineup (e.g., meta-channel “3”). The remote control devicemay communicate an input control command indicating the selectedmeta-channel number to the meta-channel base station. The meta-channelbase station may forward the input control command to a meta-channelserver, along with user authentication information.

Next, user profile information is accessed (608). For example, userprofile information may be accessed from a repository or database basedon the provided user authentication information. A user profile mayinclude user preferences for various programming content, such asfavorite sports team, locale information, political preferences, matureprogramming content preferences, interests, etc.

The user's meta-channel lineup is customized based on meta-channelselection information and the user's profile (610). For example, auser's profile may indicate a preference for a favorite football team.In this example, a meta-channel may define that a live football game isto be presented, but allow the selection of which game to be customizedin accordance with the user's profile (e.g., the meta-channel isdynamically customized to include a live broadcast of a game involvingthe user's favorite football team). Other content that the user may beinterested in that is airing simultaneously (e.g., on a different MSOchannel) with the presented football game may be recorded onto a DVR andshown in a later time slot on the user's meta-channel.

As another example, a user's meta-channel lineup may be customized to doinclude a political talk show, where the included talk show matches apolitical preference (e.g., conservative or liberal) included in theuser's profile. As a third example, a default meta-channel lineup mayinclude mature program content. The meta-channel lineup may becustomized to substitute other programming for the mature programming,if, for example, the user's profile information indicates that the useris a minor, or if the user's profile information indicates that the userprefers to not receive mature programming.

Based on a user's profile information, meta-channels not currentlyassociated with the user may be suggested to the user. For example,meta-channels related to cooking (e.g., an existing cooking-relatedmeta-channel or a new cooking-related meta-channel created by a contentjockey) may be suggested if a user profile indicates a user has aninterest in cooking. As another example, meta-channels may be suggestedbased on a user's demographic and/or interests, based on a popularity ofthose meta-channels as used by other users having the same demographicsand/or interests. If a user accepts a suggested meta-channel, thesuggested meta-channel may be included in a list of meta-channelsavailable to the user.

User input identifying a device corresponding to the user is received(612). For example, the user may assign his or her customizedmeta-channel information to a particular base station or a particularremote control. When a command is received for the particular basestation or the particular remote control, the user's customizedmeta-channel information may be used to process the command.

The user's customized meta-channel lineup is associated with theidentified device (614). For example, an association between thecustomized meta-channel lineup and an identified remote control devicemay be stored on a meta-channel base station and/or on a meta-channelserver.

The user's customized meta-channel lineup is made available to the userwhen using the identified device (616). For example, when a user uses anidentified remote control device (e.g., the user may first authenticatehim or herself using the remote control device), the user's customizedmeta-channel lineup is presented to the user. Meta-channels associatedwith the user may be made available for selection, and dynamicallyselected content may be made available on one or more meta-channelsbased on the user's profile information.

FIG. 7 is a flowchart illustrating control flow between components forrendering television broadcast content. First, a remote control receivesa user input command (702). For example, a user may press a button on aremote control device, indicating for example, selection of ameta-channel number “3”.

Next, the remote control sends the user input command over a wirelessconnection to a meta-channel base station (704). For example, the userinput command may be communicated using a Z-Wave, ZigBee, or Bluetoothwireless protocol.

The meta-channel base station receives the input command (706) and themeta-channel base station forwards the input command, over a network, toa meta-channel server (708). For example, the input command may beforwarded using TCIP/IP protocols over the Internet.

The meta-channel server receives the input command (710) and maps theinput command to a user's meta-channel (712). For example, an indicatorfor a meta-channel number “3” included in the input command may bemapped to a meta-channel included in the user's meta-channel informationthat has an associated channel number “3”.

The meta-channel server identifies broadcast television content definedby the user's meta-channel (714). For example, the meta-channel servermay access, from a stored repository, content entries associated withthe selected meta-channel. A broadcast television program offered by aspecific MSO channel (e.g., MSO channel number “5”) may be identified asprogram content currently scheduled on the user's selected meta-channel(e.g., meta-channel number “3”).

The meta-channel server transmits a control command to effect change oftelevision content (715). For example, a control command may be sent,over the Internet, to the meta-channel base station, directing atelevision receiver to change to a channel number associated with theidentified broadcast television content (e.g., MSO channel number “5”).

The meta-channel base station receives the control command (716) and themeta-channel base station forwards the control command over a wirelessconnection to the remote control (718). For example, the control commandmay be transmitted from the meta-channel base station to the remotecontrol device using a Z-Wave, ZigBee, or Bluetooth wireless protocol.

The remote control receives the control command (720), for example, overa wireless connection. The remote control sends an IR signal to atelevision to change the channel (722). For example, the IR signal canindicate the channel number associated with the identified televisionbroadcast (e.g., MSO channel number “5”). In some implementations, theremote control may send an RF signal or another type of signal to thetelevision to change the channel.

The television receives the IR signal (724) and the television changesthe channel to display the broadcast television content (726). Forexample, a receiver may be tuned to a channel number (e.g., MSO channelnumber “5”) associated with the identified television broadcast andindicated by the IR signal.

FIG. 8 is a flowchart illustrating control flow between components forrendering Internet video content. First, a remote control receives auser input command (802). For example, a user may press a button on aremote control device, indicating for example, selection of ameta-channel number “3”.

Next, the remote control sends the user input command over a wirelessconnection to a meta-channel base station (804). For example, the userinput command may be communicated using a Z-Wave, ZigBee, or Bluetoothwireless protocol.

The meta-channel base station receives the input command (806) and themeta-channel base station forwards the input command, over a network, toa meta-channel server (808). For example, the input command may beforwarded using TCIP/IP protocols over the Internet.

The meta-channel server receives the input command (810). Themeta-channel server maps the input command to a user's meta-channel(812). For example, an indicator for a meta-channel number “3” includedin the input command may be mapped to a meta-channel included in theuser's meta-channel information that has an associated channel number“3”.

The meta-channel server identifies Internet video content defined by theuser's meta-channel (814). For example, the meta-channel server mayaccess, from a stored repository, content entries associated with theselected meta-channel. An Internet video resource may be identified asprogram content currently scheduled on the user's selected meta-channel(e.g., meta-channel number “3”).

The meta-channel server transmits a first control command, over anetwork, to change an input source (816). For example, a control commandmay be sent, over the Internet, to the meta-channel base station,directing a television to change its input source from a televisionvideo source (e.g., a cable set top box) to an Internet video source(e.g., an Internet DMA).

The meta-channel base station receives the first control command (818)and the meta-channel base station forwards the first control commandover a wireless connection to the remote control (820). For example, thefirst control command may be transmitted from the meta-channel basestation to the remote control device using a Z-Wave, ZigBee, orBluetooth wireless protocol.

The remote control receives the first control command (822), forexample, over a wireless connection. The remote control sends an IRsignal to a television to change an input source (824). For example, theIR signal can indicate to change the input source to receive input froman Internet DMA.

The television receives the IR signal (826) and the television changesthe input source to receive input from the Internet DMA (828). Based onthe changed input source setting, the television is configured todisplay a video signal received from the Internet DMA.

After sending the first control command, the meta-channel server sends asecond control command to the Internet digital media adapter (830). Forexample, the second control command may include a URL of an Internetvideo resource.

The Internet digital media adapter receives the second control commandfrom the meta-channel server (832). For example, the second controlcommand may be received over the Internet.

The Internet digital media adapter generates a video signal of theInternet video content (834). For example, a video file may bedownloaded from the Internet to the Internet digital media adapter(using, for example, a URL of the Internet video resource), and thevideo file may be decoded. The Internet digital media adapter also maygenerate a video signal of the Internet video content using a video filestreamed over a network or a video file downloaded from the Internet tothe Internet digital media adapter prior to the change in meta-channel.

The Internet digital media adapter transmits the video signal of theInternet video content to the television (836). For example, the videosignal may be communicated over a DVI (Digital Visual Interface), anHDMI (High-Definition Multimedia Interface) interface, or any other typeof video interface.

The television receives the video signal (838) and displays the internetvideo content (840). For example, the video content may be rendered on adisplay screen.

Although the processes shown in FIGS. 7 and 8 have been described asbeing performed by particular components, similar methodologies may beapplied in other implementations where different components are used todefine the structure of the system, or where the functionality isdistributed differently among the components. For example, although atelevision has been described as performing operations in FIGS. 7 and 8,other display devices (e.g., a monitor) may be used to perform theoperations. In addition, other media devices may be part of a mediasystem performing the processes shown in FIGS. 7 and 8 and provide othersources of video/audio content. Furthermore, in some implementations,the operations described as being performed by the meta-channel servermay be performed by the meta-channel base station.

FIG. 9 is a context diagram illustrating substitution of alternativecontent upon detection of advertising content. A user 902 is watchingvideo content on a television 904, and an advertisement may be detectedon the television 904. For example, an advertisement may be detectedusing any type of technique, such as detecting an increase in volumewhen the advertisement starts.

In response to the detection of an advertisement, a user profile 908associated with the user 902 is accessed. The user profile 908 can beused to determine alternative content which may be selected to bepresented on the television 904 in place of the detected advertisement.For example, a meta-channel priority list profile setting 910 mayinclude a list of meta-channels that may be used to provide alternativecontent in place of advertising. If an advertisement is detected on thecurrent channel, the television may be switched to the first channel(e.g., channel with highest priority) in the meta-channel priority list910 which is currently showing non-advertising content. For example, ifan advertisement is detected on the current channel, and if anadvertisement is not playing on channel 6, the television may beswitched to channel 6. If an advertisement also is playing on channel 6,the television may be switched to channel 4 (assuming an advertisementis not playing on channel 4).

A user profile setting 912 may indicate that a user would prefer to seeadvertisements relating to a particular category of advertisements(e.g., advertisements related to sporting equipment or automobiles). Ifan advertisement which is not related to a user's preferred categoriesof advertisements is detected on the television 904, an advertisementthat is related to the user's preferred categories of advertisements maybe selected, possibly downloaded over a network, and presented asalternative content on the television 904.

A user profile setting 914 may indicate that a user prefers to seeadvertisements related to a particular geographic region (e.g.,Washington, D.C.). If an advertisement which is not related to a user'spreferred geographic region is detected on the television 904, anadvertisement that is related to the user's preferred geographic regionmay be selected, possibly downloaded over a network, and presented asalternative content on the television 904.

A user profile setting 916 may include a list of alternative contentsources that are not related to meta-channels. A user may choose todefine an alternative content source that a user prefers to receiveduring limited time periods (e.g., during advertisement time periods).For instance, the user may choose to view a weather television channelduring limited time periods and assign the weather television channel asan alternative content source. The user also may choose to view aparticular web page or Internet content during limited time periods andassign the particular web page or Internet content as an alternativecontent source.

Based on the user profile setting 916, if an advertisement is detectedon the current channel, the television may be switched to the firstalternative content source which is currently showing non-advertisingcontent. For example, if an advertisement is detected on the currentchannel, and if an advertisement is not playing on MSO channel 5, thetelevision may be switched to MSO channel 5. If an advertisement also isplaying on MSO channel 5, the television may be switched to InternetSource #3.

A user profile setting 918 may indicate non-video advertisement fillerwhich may be used a source of alternative content. For example, if adetected advertisement is replaced with an alternative advertisement,and if the alternative advertisement is shorter in duration than thereplaced advertisement, non-video filler, such as an electronic couponor some other form of static advertisement, may be displayed on thetelevision 904 for a time period equal to the difference in time betweenthe replaced and alternative advertisements.

FIG. 10 illustrates a system diagram 1000 which is, in many respects,similar to the system diagram 200. The items 1002 to 1034 of FIG. 10correspond to items 202 to 234 of FIG. 2, respectively. The systemdiagram 1000 includes an advertisement resource 1050 and anadvertisement monitoring server 1060. The advertisement monitoringserver 1060 may detect an advertisement (ad) and may send a signal tothe meta-channel server 1030 in response to detecting the advertisement.The advertisement monitoring server 1060 may detect advertisementsplayed on MSO channels based on a connection to the MSO broadcastcontent and also may detect advertisements inserted into meta-channelsby content jockeys that define the meta-channels based on a connectionto the meta-channel server 1030.

The meta-channel server 1030 may access advertising preferences for auser, indicating whether a user prefers local ads, prefersnon-advertising content, prefers ads related to a specific geographicregion, etc. The meta-channel server 1030 may identify secondary contentrelated to the user's preferences. Secondary advertising content may beidentified by referring to one or more advertising resources 1050. Theadvertising resource 1050 may include information about advertisementsavailable to be selected as secondary content, such as anadvertisement's category, region, publisher, etc.

The meta-channel server 1030 may be configured to send a control commandto the meta-channel base station 1032, which in turn may forward thecontrol command to a remote control 1034. In response to the controlcommand, the remote control 1034 may send an IR signal to the television1002, instructing the television to tune to secondary content (e.g.,tune to a different MSO channel to display non-advertising content, orreceive secondary advertising content from the Internet DMA 1006).

FIG. 11 is a flowchart illustrating a computer-implemented process 1100for presenting alternate content on a media device. Briefly, thecomputer-implemented process 1100 includes detecting an advertisement ona selected content channel being experienced by a user on a mediadevice, accessing advertisement preferences for the user, selectingsecondary content based on the advertisement preferences, substitutingthe secondary content for the advertisement on the selected contentchannel, and controlling the media device to output the secondarycontent.

In further detail, when the process 1100 begins, an advertisement isdetected on a selected content channel being experienced by a user on amedia device (1102). For example, an advertisement monitoring server maymonitor for advertisements on channels being experienced by users, andmay detect an advertisement on a channel based on an increase in volumewhen an advertisement starts. A content channel may be any type ofphysical or virtual channel over which content is distributed. Forexample, a content channel may include any type of broadcast contentchannel (e.g., analog or digital television channels) in whichprogramming is broadcast over a network. A content channel also mayinclude any type of request-based content channels in which content isdelivered (e.g., downloaded, streamed, etc.) over a network in responseto user requests. A content channel further may include a meta-channelthat arranges content from a variety of content sources into a virtualchannel.

Advertisement preferences for the user are accessed (1104). For example,a user profile may be accessed which includes user preferences, wherethe user preferences indicate whether a user prefers, in place ofregular advertising, local ads, non-advertising content, ads related toa specific geographic region, etc.

Secondary content is selected based on the advertisement preferences(1106). For example, if the detected advertisement is not related to auser's preferred categories of advertisements, an advertisement that isrelated to the user's preferred categories of advertisements may beselected. As another example, if the detected advertisement is notrelated to a user's preferred geographic region, an advertisement thatis related to the user's preferred geographic region may be selected. Asa third example, if a user's preferences indicate that a user prefersnon-advertising content, a highest-priority channel on a channelpriority list which is not currently presenting advertising content maybe selected.

The secondary content is substituted for the advertisement on theselected content channel (1108). For instance, a meta-channel server maycontrol a user's media system to substitute the secondary content forthe advertisement currently defined by the meta-channel the user isexperiencing. Substituting the secondary content for the advertisementmay include updating the user's meta-channel information to at leasttemporarily define the secondary content in place of the contentoriginally defined by the meta-channel. The server also may store otherdata that tracks the substitution of the secondary content and thechannel the user was experiencing when the substitution occurred.

The media device is controlled to output the secondary content (1110).For example, if the secondary content is an MSO television channel, areceiver may be tuned to the MSO channel and the MSO broadcast contentmay be rendered on a display included in the media device. If thesecondary content is alternative advertising content, the advertisingcontent may be downloaded from a server to an Internet digital mediaadapter, decoded, and rendered on a display included in the mediadevice. The secondary content also may be streamed over a network ordownloaded from the Internet to an Internet digital media adapter priorto detection of an advertisement.

FIG. 12 is an example user interface 1200 for selecting advertisementpreferences. A user may select one of a set of options 1202-1208. Insome implementations, the user may select more than one of the options1202-1208. The user may select option 1202, for example, if they preferto have advertisements displayed without change (e.g., as shown bydefault on a viewed television channel).

The user may select option 1204, for example, if they prefer to seenon-advertising content in place of advertisements. If option 1204 isselected, a set of channels 1210 a-d may be specified in a meta-channelpriority list 1212. If an advertisement is detected while the user isviewing television content, a television channel may be switched to thefirst channel in the meta-channel priority list 1212 that is notcurrently displaying advertising content. For example, if anadvertisement is detected, and the channel 1210 a (e.g., meta-channel“5”) is not currently displaying advertising content, a televisionchannel may be switched to the channel 1210 a. However, if the channel1210 a is displaying advertising, other channels in the list (e.g., 1210b-d) may be checked, and a television channel may be switched to thefirst channel (e.g., 1210 b) which is not currently displayingadvertising content.

A user may select option 1206, for example, if they prefer to seeadvertisements related to one or more preferred topics ofadvertisements. For example, the user interface 1200 displays preferredadvertisements topics 1214 a-b, relating to sports and automobiles,respectively. If an advertisement which is not related to a preferredtopic of the user is detected, an advertisement that is related to theuser's preferred topics of advertisements may be selected, possiblydownloaded over a network, and presented as alternative content. Thepreferred advertisement also may be streamed over a network ordownloaded from the Internet to an Internet digital media adapter priorto detection of an advertisement which is not related to a preferredtopic of the user.

A user may also be able to specify one or more preferred companies(e.g., 1216 a-b). If an advertisement which is not related to apreferred company of the user is detected, an advertisement that isrelated to a preferred company of the user may be selected, possiblydownloaded over a network, and presented as alternative content. Thepreferred advertisement also may be streamed over a network ordownloaded from the Internet to an Internet digital media adapter priorto detection of an advertisement which is not related to a preferredcompany of the user.

A user may also be able to specify one or more excluded companies (e.g.,1218). Advertisements associated with excluded companies may be excludedfrom being selected, even if those advertisements match other criteria(such as being related to a customer's preferred topic).

A user may select option 1208, for example, if the user prefers to seelocal advertisements. A user may specify his primary address in aprimary address field 1220, and a secondary address in a secondaryaddress field 1222. A user may specify that the secondary address shouldbe used, by selecting an option 1224, if, for example, the user is onvacation. If an advertisement which is not related to a user's addressis detected, an advertisement that is related to the user's address maybe selected, possibly downloaded over a network, and presented asalternative content. The geographically-relevant advertisement also maybe streamed over a network or downloaded from the Internet to anInternet digital media adapter prior to detection of an advertisementwhich is not related to a user's address.

FIG. 13 is a flowchart illustrating a computer-implemented process 1300for returning from presentation of alternative content. Briefly, thecomputer-implemented process 1300 includes monitoring detectedadvertisements on the selected content channel for completion, accessingadvertisement return preferences, and after detecting completion ofdetected advertisements, controlling the media device based onadvertisement return preferences.

In further detail, when the process 1300 begins, detected advertisementson the selected content channel are monitored for completion (1302). Forexample, an advertisement monitoring server may monitor for completionof advertisements on channels being experienced by users. Advertisementcompletion may be detected, for example, based on a decrease in volumeupon the resumption of non-advertisement content.

Advertisement return preferences are accessed (1304). For example,advertisement return preferences may be accessed from a user profile. Auser profile may store various user-specified advertisement returnpreferences. For example, a user profile may store settings specifiedusing an example user interface 1400 illustrated in FIG. 14. The usermay, using the user interface 1400, specify an option 1402 to indicate apreference to return to a prior content channel immediately uponcompletion of detected advertisements. A user may specify an option 1404to indicate a preference to maintain presentation of a secondary contentchannel until an advertisement is detected on the secondary contentchannel. A user may specify an option 1406 to indicate a preference tomaintain presentation of a secondary content channel and to provide anotification to the user (e.g., using an onscreen message and offeringthe user the option to return to the prior content channel) that thedetected advertisements on the prior content channel have completed.

After detecting completion of detected advertisements, the media deviceis controlled based on advertisement return preferences (1306). Forexample, if the accessed advertisement return preferences correspond tothe option 1402, a television receiver may be controlled to tune to theprior content channel. If the accessed advertisement return preferencescorrespond to the option 1404, a television receiver is maintained astuned to the secondary content channel. When an advertisement isdetected on the secondary content channel, a television receiver may betuned to switch to the prior content channel. If the accessedadvertisement return preferences correspond to the option 1406, anotification may be displayed to the user (e.g., using an onscreenmessage and offering the user the option to return to the prior contentchannel), indicating that detected advertisements have completed on theprior content channel. A television receiver may be maintained as tunedto the secondary content channel.

FIG. 15 is a flowchart illustrating control flow between components forrendering secondary content in response to detection of anadvertisement. An advertisement monitoring server detects anadvertisement on a channel being experienced by a user (1502). Forexample, an advertisement may be detected based on an increase in volumecorrelating to the start of an advertisement.

The advertisement monitoring server may send a signal indicating thedetected advertisement to a meta-channel server (1504). For example, thesignal may be communicated by sending a message over a network (e.g.,the Internet). The meta-channel server receives the signal (1506).

The meta-channel server accesses advertisement preferences (1508). Theaccessed preferences may indicate whether a user prefers local ads,prefers non-advertising content, prefers ads related to a specificgeographic region, etc.

The meta-channel server identifies secondary content (1510). Forexample, if the detected advertisement is not related to a user'spreferred categories of advertisements, an advertisement that is relatedto the user's preferred categories of advertisements may be identifiedas secondary content. As another example, if the detected advertisementis not related to a user's preferred geographic region, an advertisementthat is related to the user's preferred geographic region may beidentified as secondary content. As a third example, if a user'spreferences indicate that a user prefers non-advertising content, ahighest-priority channel on a channel priority list which is notcurrently presenting advertising content may be selected as secondarycontent.

The meta-channel server sends a first control command based on theidentified secondary content to a meta-channel base station (1512). Forexample, the first control command may be sent over a network, such asthe Internet.

The meta-channel base station receives the first control command (1514)and forwards the first control command to a remote control device(1516). For example, the first control command may be sent to the remotecontrol device over a wireless connection.

The remote control device receives the first control command (1518) andsends an IR signal to a television (1520). The television receives theIR signal (1522) and configures one or more settings to display thesecondary content (1524). For example, if the secondary content is to bereceived from an MSO channel, a television receiver may be tuned to theMSO channel. As another example, if the secondary content is advertisingcontent received from a network server, the television may be configuredto receive video content from an Internet digital media adapter.

After sending the first control command, the meta-channel serveroptionally sends a second control command to an Internet digital mediaadapter (1526). The second control command is sent if the secondarycontent is provided by an Internet video or a custom advertisementserved by a network server. Upon receiving the second control command,the secondary content may be downloaded, decoded, and transmitted to thetelevision for display. In some examples, upon receiving the secondcontrol command, the Internet digital media adapter may begin streamingthe secondary content over a network or may outputting secondary contentthat has been previously downloaded and pre-transcoded.

After detecting an advertisement, the advertisement monitoring servermonitors for completion of detected advertisements (1528). For example,completion of an advertisement may be detected based on a decrease involume as non-advertising content resumes.

Upon detection of the completion of detected advertisements, theadvertisement monitoring server sends a signal to the meta-channelserver indicating advertisement completion (1530). For example, thesignal may be sent in a message over a network (e.g., the Internet).

The meta-channel server receives the advertisement completion signal(1532). The meta-channel server accesses advertisement returnpreferences. For example, advertisement return preferences may beaccessed from a user profile.

The meta-channel server may send a third control command to themeta-channel base station if advertisement return preferences result ina change of input source for the television (1534). The signal may, inturn, be forwarded to the remote control, and the remote control maysend a corresponding signal to the television.

For example, if the accessed advertisement return preferences indicatethat the user prefers to return to a prior content channel immediatelyupon completion of detected advertisements, the third control commandmay direct a television receiver to tune to the prior content channel.If the accessed advertisement return preferences indicate that the userprefers to maintain presentation of secondary content until anadvertisement is detected on a secondary content channel, a televisionreceiver is maintained as tuned to the secondary content channel. Whenan advertisement is detected on the secondary content channel, a thirdcontrol command may be sent directing the television to switch to theprior content channel. If the accessed advertisement return preferencesindicate that the user prefers to maintain presentation of a secondarycontent channel and to receive a notification that the detectedadvertisements on the prior content channel have completed, the thirdcontrol command may direct a television to display a notification (e.g.,using an onscreen message and offering the user the option to return tothe prior content channel) indicating that detected advertisements havecompleted on the prior content channel.

Although the processes shown in FIG. 15 have been described as beingperformed by particular components, similar methodologies may be appliedin other implementations where different components are used to definethe structure of the system, or where the functionality is distributeddifferently among the components. For example, although a television hasbeen described as performing operations in FIG. 15, other displaydevices (e.g., a monitor) may be used to perform the operations. Inaddition, other media devices may be part of a media system performingthe processes shown in FIG. 15 and provide other sources of video/audiocontent. Furthermore, in some implementations, the operations describedas being performed by the meta-channel server may be performed by themeta-channel base station.

Although implementations have been described in the context ofsubstituting secondary content for advertising content, otherimplementations may include substituting secondary content for types ofcontent other than advertising. For example, the system may detectcontent interruptions (e.g., news breaks, loss of service, poor quality,device failure, etc.) and substitute secondary content for the contentinterruptions based on user preferences. The system also may detect whena programming schedule is modified by a content provider and substitutesecondary content in response to the modifications. For instance, thesystem may detect that a live sporting event is running long and thecontent provider has delayed broadcasting of a desired show to accountfor the extended length of the live sporting event. The system mayselect secondary content to replace the live sporting event, monitor forcompletion of the live sporting event, and then control the media systemto display the delayed broadcast of the desired show.

FIG. 16 is a contextual diagram illustrating a process of enabling amedia system to render content. A guide 1602, which may be an electronicprogram guide, displays information about content defined by one or moremeta-channels 1604 a-d. The guide 1602 may display a schedule of contentto be presented on a particular day of the week (e.g., Sunday).

Meta-channels 1604 a-d each identifies content entries to be presentedon a respective meta-channel, and indicate an order in which the contententries are to be presented on that meta-channel. For internet videocontent, a portion of the video content may be cached (e.g., in a cacheassociated with a digital media adapter), to enable responsive channelswitching to a meta-channel scheduled to present Internet video content.Cached content also may be pre-transcoded to a faster video codec toimprove response time. For instance, the cached content may bepre-transcoded using a video codec that enables the cached content to berendered in less than half a second.

For example, as indicated by an action 1606, a portion 1608 of the videocontent “IP video 1” (described by content entry 1610) and a portion1612 of the video content “IP video 2” (described by content entry 1614)may be cached and pre-transcoded in a digital media adapter cache 1616at a time “time 1”. The portion of the video content cached may bedetermined by based on the time needed to render the video contentwithout caching. For instance, the video content “IP video 1” (describedby content entry 1610) may take one minute to download and decode usinga video codec before the video content “IP video 1” is ready to bedisplayed to a user and the video content “IP video 2” (described bycontent entry 1614) may take two minutes to download and decode using avideo codec before the video content “IP video 2” is ready to bedisplayed to a user. In this case, the portion 1608 of the video content“IP video 1” cached may correspond to one minute of video viewing time(e.g., the time needed to download the video content “IP video 1” anddecode video content “IP video 1” using a video codec) and the portion1612 of the video content “IP video 2” cached may correspond to twominutes of video viewing time (e.g., the time needed to download thevideo content “IP video 2” and decode video content “IP video 2” using avideo codec). As such, only a relatively small portion of “IP video 1”(e.g., one minute worth of IP Video 1) and only a relatively smallportion of “IP video 2” (e.g., two minutes worth of IP Video 2) needs tobe cached in the media adapter cache 1616. This may be advantageousbecause the amount of storage needed by the media adapter cache 1616 maybe reduced and the media adapter cache 1616 still may be able to store arelatively small portion of a large number of IP videos.

If, during the timeframe between “time 1” and “time 2”, a user switchesto the meta-channel 1604 a, the cached and pre-transcoded portion 1608of “IP video 1” may be played while the original version of “IP video 1”is transcoded and prepared for viewing by a background process. Atransition may occur from the rendering of the cached and pre-transcodedportion 1608 to the rendering of the original version of “IP video 1”.Similarly, if a user switches to the meta-channel 1604 d, the cached andpre-transcoded portion 1612 of “IP video 2” may be played while theoriginal version of “IP video 2” is transcoded and prepared for viewing.

At a time “time 2”, it may be determined that the scheduled play timesfor “IP video 1” and “IP video 2” have passed, and consequentially, theportions 1608 and 1612 may be removed from the digital media adaptercache 1616, as illustrated by a digital media adapter cache 1618. Asindicated by an action 1619, and before “time 2” is reached, a portion1620 of video content “IP video 4” (described by content entry 1622) anda portion 1624 of video content “IP video 5” (described by content entry1626) may be cached and pre-transcoded in the digital media adaptercache 1618. A size of the portions 1620 and 1624 of the video contentcached may be determined by based on the time needed to render the videocontent without caching.

As indicated by an action 1628, video content “IP video 3” (described bycontent entry 1630) may be excluded from caching because it renders fastenough without caching. For example, the video content “IP video 3” maybe processable so that it is ready for viewing in a time that is lessthan a threshold time (e.g., less than a threshold time of a halfsecond). If, during a time between “time 2” and “time 3”, a userswitches to the meta-channel 1604 a, an original version of “IP video 3”may be rendered.

At a time “time 3”, four IP videos (e.g., “IP video 6”, “IP video 7”,“IP video 8”, and “IP video 9”, described by content entries 1632-1638,respectively) are scheduled to be presented. As indicated by an action1640, it may be determined that it is not possible to cache portions ofall scheduled Internet videos. For example, it may be determined thatthere is not enough space available in the digital media adapter cache1618, and/or it may be determined that there is not enough time todownload and transcode portions of all scheduled Internet videos.

If it is determined that it is not possible to cache portions of allscheduled Internet video content, a subset of meta-channels scheduled todisplay Internet video content may be selected, and portions of Internetvideo content scheduled to be played on meta-channels included in thesubset may be cached and pre-transcoded. For example, an approach may beused to maximize the number of cached portions. In this example, asubset of meta-channels may be determined by identifying combinations ofthe identified meta-channels for which the digital media adapter cachehas the ability to store, prior to “time 3”, portions of the contentscheduled to be presented on each of the meta-channels included in thecombination. A combination of the identified meta-channels that includesthe largest number of channels may be selected from among the identifiedcombinations. For instance, as indicated by an action 1642, acombination including meta-channels 1, 2, and “N” may be identified as acombination having the highest number of channels, and portions1644-1648 (of video content “IP video 6”, “IP video 7”, and “IP video9”, respectively) may be pre-transcoded and cached in a digital mediaadapter cache 1650.

As another example, a subset of meta-channels may be selected byaccessing historical viewing patterns that indicate one or morecategories of content the user has experienced during past time framesthat are similar to the particular time frame. The content defined byeach of the identified meta-channels may be compared to the accessedhistorical viewing patterns and a subset of the identified meta-channelsthat the user is most likely to experience during the particular timeframe may be determined based on the comparison of the content definedby each of the identified meta-channels to the accessed historicalviewing patterns. For example, a user may have previously watchedcomedy-related videos during a time period starting at “time 3”, and IPvideos 6, 8, and 9 may include comedy-related content, whereas IP video7 may include crime drama content. Therefore, correspondingmeta-channels 1604 a, 1604 c, and 1604 d may be included in a subset ofselected meta-channels while meta-channel 1604 b may be excluded from asubset of selected meta-channels.

As yet another example, a subset of meta-channels may be selected bydetermining a meta-channel being experienced by the user at the time ofselecting, accessing information that identifies one or moremeta-channels the user typically selects subsequent to experiencing themeta-channel being experienced by the user at the time of selecting,comparing the accessed information to the identified meta-channels, anddetermining a subset of the identified meta-channels that the user ismost likely to experience during the particular time frame based on thecomparison of the accessed information to the identified meta-channels.In other words, and for example, if the user is currently watchingmeta-channel 1604 b, and if historical data indicates that the usertypically selects either meta-channels 1604 a or 1604 c after watchingmeta-channel 1604 b, meta-channels 1604 a and 1604 c may be included inthe subset of meta-channels.

As indicated by an action 1652, at a time “time 4”, the end time of thecontent “IP video 7” may be detected (or, as another example, the endingof the playing of the portion 1646 may be detected), which may allow forthe clearing of the portion 1646 from the digital media adapter cache1650. In response to the clearing of the portion 1646, and as indicatedby an action 1654, a meta-channel (e.g., meta-channel 1604 c) may beselected as a new channel to cache. A portion 1656 of the previouslyuncached content “IP video 8” may be cached, as illustrated by a digitalmedia adapter cache 1658. In some implementations, the digital mediaadapter cache 1650 may clear a portion of content stored in the digitalmedia adapter cache 1650 as soon as that portion is finished playing,even though the original video associated with the cached portion isstill being played. Clearing the cached portion while the original videois still being played may allow the digital media adapter cache 1650 tocache additional content at an earlier time than if the cached portionwas not cleared until the original video finished playing.

FIG. 17 illustrates a system 1700 for rendering content. The system 1700includes a meta-channel server 1702, content providers 1704-1706, and anInternet digital media adapter (DMA) 1708, all connected to a network1710. The Internet DMA 1708 may receive Internet video or other contentover the network 1710, from content providers 1704-1706. The contentproviders 1704-1706 may provide content using a public network source(e.g., content available over the Internet) or using a content deliverynetwork (CDN). A CDN is a network of cooperating devices optimized(e.g., for performance, scalability, and cost efficiency) to delivercontent, such as video or audio content, for example, to client devices,possibly incurring a fee. Video content may include video files, videofeeds (e.g., podcasts), or other content such as BitTorrent files. Thenetwork 1710 may be one or more public or private, wired or wirelessnetworks, such as the Internet, or may be a Session Initiated Protocol(SIP) network such as the PsipTN network offered by TelTel.

Received video content can be stored in electronic storage 1711 includedin the Internet DMA 1708. Received video content can be presented on adisplay device 1712 (e.g., television screen, computer monitor)connected to the Internet DMA 1708. The meta-channel server 1702 cancommunicate, over the network 1710, meta-channel information including alist of user-defined meta-channels, to the Internet DMA 1708 or to otherdevices such as a meta-channel base station (not shown). Meta-channelinformation may be stored in and retrieved from a meta-channel database1714.

FIG. 18 is a flowchart illustrating a computer-implemented process 1800for enabling a media system to render content. Briefly, thecomputer-implemented process 1800 includes storing meta-channelinformation, accessing content entries corresponding to content definedby meta-channels for a particular time frame, identifying one or moretypes of content defined by the meta-channels for the particular timeframe, selecting a subset of the meta-channels based on the identifiedtypes of content, storing, in electronic storage associated with a mediasystem of a user, a decoded version of content defined by the selectedsubset of meta-channels, and in response to user selection of one of thesubset of meta-channels, controlling the media system to render contentusing the decoded version of the content.

In further detail, when the process 1800 begins, meta-channelinformation is stored in electronic storage of a media system (1802).For example, meta-channel information may define multiple meta-channels,where each meta-channel may refer to content entries and define an orderin which content entries are to be presented on a particularmeta-channel. A content entry relates to content available from acontent provider, such as a television broadcaster or an Internet videosource. Meta-channel information may be stored in a central repositoryand may be transferred to and cached on a meta-channel base stationresiding, for example, in a user's home.

After meta-channel information is stored, content entries correspondingto content defined by each of the multiple meta-channels for aparticular time frame are accessed from the meta-channel informationstored in the electronic storage (1804), where the accessed contententries include at least one content entry that relates to a first typeof content broadcast by a content provider at a specific time and atleast one content entry that relates to a second type of content madeavailable, over a network, by a content provider in response to userrequests. For example, content entries may be accessed from ameta-channel base station and/or from a central repository or server.The particular time frame may be an upcoming time (e.g., 5 p.m.) or timeperiod (e.g., 5 p.m. to 7 p.m.), and the accessed content entries maycorrespond to content scheduled to be presented on one or moremeta-channels at or during the particular time frame. Content entriesmay refer to, in general, various types of content, such as broadcasttelevision content received from a specific local or cable televisionprovider, Internet video, audio CD music, or content from an “on-demand”cable television service, to name a few examples. The first type ofcontent may be broadcast, for example, by a cable television channel.The second type of content may be, for example, Internet video.

After content entries are accessed, a type of content defined by each ofthe multiple meta-channels for the particular time frame is identified,based on the accessed content entries (1806). For example, at 5 p.m., afirst meta-channel may be scheduled to present an MSO broadcast and asecond meta-channel may be scheduled to present an Internet video.

After a type of content is identified for each meta-channel, a subset ofthe meta-channels is selected based on the identified type of content(1808). For example, meta-channels scheduled to present Internet videocontent may be selected. In further detail, FIG. 19 illustrates acomputer-implemented process 1900 for selecting a subset ofmeta-channels based on an identified type of content. Briefly, thecomputer-implemented process 1900 includes: identifying multiplemeta-channels for which a time needed to begin rendering content definedby the meta-channel exceeds a threshold time; determining, for each ofthe identified meta-channels, an amount of content needed to enabletransition from using a decoded version to using an original versionwithout a break in content rendering; determining whether the electronicstorage of the media system has the ability to store the determinedamount of content prior to the time the content is defined to beexperienced; when the electronic storage has the ability to store thedetermined amount of content, selecting all of the identifiedmeta-channels for storing a decoded version of the content; and when theelectronic storage does not have the ability to store the determinedamount of content, selecting a subset of the identified meta-channelsfor storing a decoded version of the content.

In further detail, when the process 1900 begins, multiple meta-channelsfor which a time needed to begin rendering content defined by themeta-channel exceeds a threshold time are identified (1902). Forexample, FIG. 20 illustrates an example process 2000 for identifyingmeta-channels for which a time needed to begin rendering content exceedsa threshold time. When the process 2000 begins, meta-channels areidentified, where the meta-channels define content made available, overa network, by a content provider in response to user requests (2002).For example, multiple meta-channels may be identified that are scheduledto present Internet video content during a particular time frame.

After meta-channels are identified, a time needed to begin renderingcontent by the identified meta-channels is determined (2004). Forexample, for each video, an amount of time needed to transcode the videocontent using a video codec may be determined.

Next, it is determined whether the time needed to begin renderingcontent exceeds a threshold time (2006). For example, the time needed tobegin rendering content may be compared to a threshold time of one-halfsecond.

If the determined time needed to begin rendering content does not exceeda threshold time, the meta-channel is not selected (2008). If thedetermined time needed to begin rendering content exceeds a thresholdtime, the meta-channel is selected (2010).

Returning to FIG. 19, for each of the identified meta-channels, anamount of content needed to enable transition from using a decodedversion to using an original version without a break in contentrendering is determined (1904). For example, the amount of content maybe selected so that the play time of the amount of content is equal toor greater than the amount of time needed to transcode the remainingportion of a video not including the determined amount of content. As amore specific example, if an entire Internet video takes 5 seconds totranscode, the amount of content may be determined to be slightly lessthan the first 5 seconds (e.g., 4.9 seconds) of content. In other words,4.9 seconds may be the amount of time needed to transcode the remainingportion of the Internet video starting 4.9 seconds into the video. Asize of content may be determined based on a determined amount of timeneeded to begin rendering the content.

Next, it is determined whether the electronic storage of the mediasystem has the ability to store the determined amount of content priorto the time the content is defined to be experienced (1906). Forexample, it may be determined whether the aggregated amount of contentfor the identified meta-channels exceeds an amount of available storagein electronic storage associated with the media system. For example, theaggregated amount of content may be 100 megabytes, and the amount ofavailable storage in the media system may be 80 megabytes (in whichcase, it may be determined that the media system does not have theability to store the determined amount of content). As another example,it may be determined whether the media system has the ability to storethe determined amount of content by determining whether an amount oftime remaining until a start of the particular time frame exceeds anamount of time needed for the media system to download, transcode, andstore the determined amount of content for each of the identifiedmeta-channels.

When the electronic storage has the ability to store the determinedamount of content, all of the identified meta-channels are selected forstoring a decoded version of the content (1908). In contrast, when theelectronic storage does not have the ability to store the determinedamount of content, a subset of the identified meta-channels are selectedfor storing a decoded version of the content (1910).

For example, a subset of the identified meta-channels may be selected byidentifying combinations of the identified meta-channels for which theelectronic storage associated with the media system of the user has theability to store, prior to the particular time frame, the determinedamount of content for each of the meta-channels included in thecombination. In this example, a combination of the identifiedmeta-channels that includes the largest number of channels may beselected from among the identified combinations. For instance, if amedia system's electronic storage has 20 megabytes of space available,and if determined amounts of content for first, second, and thirdmeta-channels are 10, 10, and 20 megabytes, respectively, the first andsecond meta-channels may be selected as being included in a subset ofidentified meta-channels, and the third meta-channel may be excludedfrom the subset of identified meta-channels.

As another example, a subset of the identified meta-channels may beselected by accessing historical viewing patterns that indicate one ormore categories of content the user has experienced during past timeframes that are similar to the particular time frame. The contentdefined by each of the identified meta-channels may be compared to theaccessed historical viewing patterns and a subset of the identifiedmeta-channels that the user is most likely to experience during theparticular time frame may be determined based on the comparison of thecontent defined by each of the identified meta-channels to the accessedhistorical viewing patterns. In other words, and for example, a user mayhave previously watched comedy videos during the particular time frame,and meta-channels scheduled to present comedy-related content during theparticular time frame may be selected as being included in the subset ofidentified meta-channels, and meta-channels scheduled to present othercategories of content (e.g., crime drama, news content, sports content,etc.) may be excluded from the subset of identified meta-channels. Inone implementation of the example described above, the first and secondmeta-channels, which each define content that requires 10 megabytes ofstorage, may each be related to a news category of content, and thethird meta-channel, which defines content that requires 20 megabytes ofstorage, may be related to a comedy category of content. In thisimplementation, the third meta-channel may be selected as being includedin a subset of identified meta-channels based on the historical viewingpatterns of the user that indicate the user prefers comedy-relatedcontent during the particular time frame, despite the selectionresulting in fewer meta-channels having IP video content cached.

As yet another example, a subset of the identified meta-channels may beselected by determining a meta-channel being experienced by the user atthe time of selecting, accessing information that identifies one or moremeta-channels the user typically selects subsequent to experiencing themeta-channel being experienced by the user at the time of selecting,comparing the accessed information to the identified meta-channels, anddetermining a subset of the identified meta-channels that the user ismost likely to experience during the particular time frame based on thecomparison of the accessed information to the identified meta-channels.In other words, and for example, if the user is currently watchingmeta-channel “4”, and if historical data indicates that the usertypically selects either meta-channels “5” or “8” after watchingmeta-channel “4”, meta-channels “5” and “8” may be included in thesubset of identified meta-channels (that is, they are included theidentified meta-channels).

Returning to FIG. 18, after a subset of meta-channels is selected, adecoded version of a portion of content (e.g., a relatively smallportion) defined by each of the selected subset of meta-channels isstored in electronic storage associated with a media system of a user(1810). For example, FIG. 21 illustrates an example process 2100 forstoring content. When the process 2100 begins, a portion of contentdefined by a meta-channel is downloaded (2102). For example, Internetvideo content may be downloaded, using, for example, the Internet or acontent delivery network.

After the portion of content is downloaded, an initial portion of thecontent needed to enable transition from using a decoded version to anoriginal version is determined (2104). For example, the original versionof the content as made available by a content provider may be encodedusing a video codec. The original video codec may be slower than afaster, different video codec. A time needed to begin rendering thecontent using the original video codec format may be determined and aninitial portion of the content may be selected to pre-transcode to thefaster video codec based on the determined time needed to beginrendering the content using the slower video codec format. In otherwords, a length of time for the initial portion may be selected so thatplayback of the initial portion rendered lasts for a time that is equalto or greater than the time needed to begin rendering the content usingthe original, slower video codec format.

After an initial portion is determined, the initial portion of thecontent is transcoded to a faster video codec format that is differentthan a slower video codec format of the original version (2106). Thefaster video codec may allow the initial portion to be started forviewing within a relatively short period of time (e.g., 0.5 seconds). Bytranscoding the initial portion of the content from a slower video codecto a faster video codec, a delay from when the content is selected towhen the content is played back to the user may be reduced and madecomparable to a delay of flipping between broadcast television channels(e.g., reduced to a delay of half a second or less).

After the initial portion is transcoded, the transcoded initial portionof the content is stored in electronic storage of the media system(2108). For example, the initial portion may be stored in electronicstorage associated with a digital media adapter.

Returning to FIG. 18, in response to user selection of one of the subsetof meta-channels, the media system is controlled to render content usingthe decoded version of the content (1812). For example, FIG. 22illustrates an example process 2200 for controlling a media system.Performing the process 2200 may, for example, enable a channel switchingtime for switching to a selected meta-channel playing Internet video tobe comparable to a channel switching time for switching to ameta-channel playing a live television broadcast. The process 2200begins with the receiving of a selection of a meta-channel (2202). Forexample, the user may select a meta-channel by selecting a button on aremote control device.

After selection of a meta-channel is received, it is determined whethera decoded version of the content is stored (2204). For example, it maybe determined whether a decoded version of video content is stored inelectronic storage of the media system as a result of performing theprocess 2100. The decoded version of the content may include only aninitial portion of the content.

If a decoded version of the content is not stored, content is renderedusing an original version (2206). The original version may be transcodedand then rendered. A decoded version might not be stored, for example,if an original version of the content is able to be transcoded andrendered within a short period of time (e.g., 0.5 seconds), or if theelectronic storage of the media system does not have the ability tostore all of the IP video content defined by the meta-channels and thecontent was not selected for caching.

If a decoded version of the content is stored, the decoded version isinitially used to render the content (2208). The decoded version may usea faster video codec, and use of the decoded version may allow renderingof content to begin, for example, in less than half a second.

In parallel with the rendering of the decoded version, a process istriggered to render an original version of the content (2210). Forexample, while the decoded version is being rendered, the originalversion of the content may be transcoded and prepared for viewing in abackground process. In some implementations, the background process alsomay include downloading the original version of the content.

Next, a process is transitioned from using a decoded version to anoriginal version when the original version is ready for rendering(2212). For example, when the transcoding of the original version andthe rendering of the decoded version is complete, a process may beinitiated to render the original version, where the rendering of theoriginal version begins at the same location in the content as where therendering of the decoded version ended, such that the transitioning fromusing the decoded to an original version appears visually seamless tothe user.

FIGS. 23A-C are contextual diagrams illustrating the downloading ofcontent for viewing using a media system. A meta-channel guide 2302 maybe displayed, for example, on a television screen. The guide 2302, whichmay be an electronic program guide, may display information aboutcontent defined by one or more meta-channels 2304 a-e. The guide 2302may display a schedule of content to be presented on a particular day ofthe week (e.g., Monday) or on a particular calendar day (e.g., Oct. 1,2008).

Meta-channels 2304 a-e each identifies content entries to be presentedon a respective meta-channel, and indicate an order in which the contententries are to be presented on that meta-channel. For example, asdisplayed in the guide 2302, a content entry 2306 a indicates that an IPvideo “1” is scheduled to be presented on the meta-channel 2304 c from 4p.m. to 5 p.m. Additionally, content entries 2306 b-f indicate that IPvideos “2” to “6” are scheduled to be played on meta-channels 2304 a-e,respectively, from 5 p.m. to 6 p.m., and a content entry 2306 gindicates that an IP video “7” is scheduled to be presented on themeta-channel 2304 e from 6 p.m. to 7 p.m.

The guide 2302 indicates that content other than IP videos is scheduled.For example, a content entry 2308 a indicates that content received froman MSO channel 6 is scheduled to be presented on the meta-channel 2304 bfrom 6 p.m. to 7 p.m. As another example, a content entry 2308 bindicates that content received from an MSO channel 1 is scheduled to bepresented on the meta-channel 2304 a from 4 p.m. to 5 p.m.

Network-based videos, such as IP videos, may be downloaded (and possiblytranscoded) before the videos are scheduled to be presented, such thatif a user selects a meta-channel scheduled to present a video, the videocontent is already downloaded and decoded and ready to be played. Ifnetwork-based videos are not downloaded prior to their scheduled starttime, and if a user selects a meta-channel scheduled to presentnetwork-based video content, a delay may occur while waiting for thevideo to be downloaded and transcoded.

Videos may be downloaded, for example, using a public network source(PNS), such as a public source of content found on the Internet, orusing a content delivery network (CDN). A CDN is a network ofcooperating devices optimized (e.g., for performance, scalability, andcost efficiency) to deliver content, such as video or audio content, forexample, to client devices. A CDN may charge a fee for use of itsdownload services, whereas a PNS may offer download services without afee.

Estimates of time needed to download video content from differentsources may be computed. For example, estimates of time needed todownload a video from a PNS and from a CDN can be computed. For example,a table 2310 illustrates download time estimates for downloading variousvideos using a PNS (e.g., an estimate 2312 of 30 minutes has beencomputed for downloading IP video “2” from a PNS). A table 2314illustrates download time estimates for downloading various videos usinga CDN (e.g., an estimate 2316 of 5 minutes has been computed fordownloading IP video “7” from a CDN). As shown in tables 2310 and 2314,download times using a CDN are generally less than download times usinga PNS. An estimated time for downloading IP video “3” from a PNS is notdisplayed because, for example, the IP video “3” is not available from aPNS (the IP video “3” is, as indicated by the table 2314, availablethrough a CDN). An estimated time for downloading IP video “6” from aCDN is not displayed because, for example, the IP video “6” is notavailable from a CDN (the IP video “6” is, as indicated by the table2310, available from a PNS).

After estimated amounts of time needed to download network-based videosfrom multiple sources have been computed, estimated times may becompared to the amount of time remaining until the network-based videosare scheduled to be played. Based on the comparisons, an initial sourceto download each video may be selected. For example, if the estimatedtime needed to download a video from a PNS is less than the timeremaining until the video is scheduled to be played, the PNS may beselected as the initial download source for that video. If the estimatedtime needed to download a video from the PNS is more than the timeremaining until the video is scheduled to be played, a CDN may beselected as the initial download source for that video.

For example, as indicated in the guide 2302, the IP videos “2” through“6” are each scheduled to be played at 5 p.m. At 4 p.m., the 30 minuteestimated time needed to download IP video “2” from a PNS may becompared to the 60-minute time remaining until the IP video “2” isscheduled to be played. Since the estimated time needed to download IPvideo “2” from a PNS is less than the time remaining until the IP video“2” is scheduled to be played, an action 2320 a may be performed tostart download of the IP video “2” from a PNS. Similarly, since the 55minute estimated time needed to download IP video “6” from a PNS is lessthan the 60 minute time remaining until the IP video “6” is scheduled tobe played, an action 2320 e may be performed to start download of the IPvideo “6” from the PNS. As another example, since the 1 hour estimatedtime needed to download IP video “4” from a PNS is equal to (i.e., fitswithin) the 60 minute time remaining until the IP video “4” is scheduledto be played, an action 2320 c may be performed to start download of theIP video “4” from the PNS.

At 4 p.m., the 2 hour estimated time needed to download IP video “5”from a PNS may be compared to the 60-minute time remaining until the IPvideo 5″ is scheduled to be played. Since the estimated time needed todownload IP video “5” is more than the time remaining until the IP video“5” is scheduled to be played, an action 2320 d may be performed tostart download of the IP video “5” from a CDN. If an estimate fordownload time from a PNS is not available, such as for IP video “3” inthis example, an action 2320 b may be performed to start download of theIP video “3” from a CDN (since it may be unknown whether download from aPNS may complete in time). As another example, a download of IP video“3” may be started from a CDN because IP video “3” is not available froma PNS.

If the time remaining until a video is scheduled to be played exceeds athreshold (e.g., 90 minutes), consideration of an initial downloadsource may be delayed. For example, IP video “7” is scheduled to beplayed at 6 p.m. At 4 p.m. (e.g., 120 minutes before the scheduled starttime), it may be determined, as indicated by action 2320 f, to delayconsideration of an initial download source for IP video “7” until 5p.m.

One or more rules may apply to the downloading of content from a CDN.For example, a rule may limit the number of downloads a particular usermay make from a CDN. For example, at 4 p.m. on the day corresponding tothis example, the user may be allowed 4 downloads from a CDN. Otherrules may define which content to download if one or more rules limitthe download of content from a CDN. Rules are discussed in more detailbelow.

Progress of downloads may be monitored, to determine whether downloadsare proceeding so that downloads will complete in time to enable viewingof the downloaded videos without interruption. For example, asillustrated in FIG. 23B, at 4:15 p.m., progress of the download of IPvideos “2” through “6” may be analyzed. For IP video “2”, an updatedestimated download time remaining has been computed as 25 minutes. The25-minute estimated download time remaining is still less than the45-minute time remaining until the IP video “2” is scheduled to beplayed, so download of IP video “2” from the PNS is maintained, asindicated by an action 2322 a. Similarly, for IP video “6”, an updatedestimated download time remaining has been computed as 40 minutes. The40-minute estimated download time remaining is still less than the45-minute time remaining until the IP video “6” is scheduled to beplayed, so download of IP video “6” from the PNS is maintained, asindicated by an action 2322 e.

For IP video “4”, an updated estimated download time remaining has beencomputed as 50 minutes. The 50-minute estimated download time remainingis more than the 45-minute time remaining until the IP video “4” isscheduled to be played, so download of the IP video “4” from the PNS isstopped, and download of the IP video “4” from a CDN is started, asindicated by an action 2322 c. The entire IP video “4” may be downloadedfrom the CDN, or the portion of the IP video “4” not downloaded from thePNS may be downloaded from the CDN.

Download of IP video “3” is detected as complete at 4:15 p.m., asindicated by an action 2322 b. For IP video “5”, an updated estimateddownload time remaining has been computed as 20 minutes. The 20-minuteestimated download time remaining is still less than the 45-minute timeremaining until the IP video “5” is scheduled to be played, so downloadof IP video “6” from the CDN is maintained, as indicated by an action2322 d.

One or more rules may indicate whether downloads from a CDN are allowed.For example, at 4 p.m., rules indicate that 4 downloads from a CDN areallowed before 6 p.m. However, if, as in this example, 2 CDN downloadsare started at 4 p.m., at 4:15 p.m., the rules may indicate that 2additional downloads are allowed from a CDN before 6 p.m. (e.g., because2 allowed CDN downloads were used). Also, for example, due to a startingof a download of IP video “5” from a CDN at 4:15 p.m., one or more rules(e.g., as checked when the next progress monitoring occurs, such as at4:30 p.m.) may indicate that only one additional download may be allowedfrom a CDN before 6 p.m.

As shown in FIG. 23B, at 4:30 p.m., progress of downloads may continueto be monitored and one or more actions may be performed in response tothe monitoring. For example, for IP video “2”, an updated estimateddownload time remaining has been computed as 20 minutes. The 20-minuteestimated download time remaining is still less than the 30-minute timeremaining until the IP video “2” is scheduled to be played, so downloadof IP video “2” from the PNS is maintained, as indicated by an action2324 a.

Similarly, download time remaining estimates of 5 minutes, 10 minutes,and 30 minutes have been computed for IP videos “4”, “5”, and “6”,respectively. Each of the 5, 10 and 30 minute download time remainingestimates fit within the 30-minute time remaining until the videos “4”,“5”, and “6” are scheduled to be played, so the downloads of videos “4”,“5”, and “6” are maintained, as indicated by actions 2324 b-d,respectively.

As shown in FIG. 23C, at 4:45 p.m., progress of downloads may continueto be monitored and one or more actions may be performed in response tothe monitoring. For example, for IP video “2”, an updated estimateddownload time remaining has been computed as 25 minutes. The 25-minuteestimated download time remaining is more than the 15-minute timeremaining until the IP video “2” is scheduled to be played, so downloadof IP video “2” from the PNS is stopped, and download of IP video “2”from a CDN is started, as indicated by an action 2326 a. For IP video“4” and IP video “5”, downloads have been detected as complete, asindicated by actions 2326 b and 2326 c, respectively.

For IP video 6, an updated estimated download time remaining has beencomputed as 20 minutes, which is more than the 15-minute time remaininguntil the IP video “6” is scheduled to be played. The download of the IPvideo “2” from the CDN uses up the last remaining allowable CDNdownload, as specified by one or more rules, so the download of the IPvideo “6” is maintained from the PNS, as indicated by an action 2326 d.In other examples, the user may be allowed to choose whether IP video“2” or IP video “6” is downloaded from the CDN. A user may also beallowed to increase a service level (e.g., by paying a fee) to enablemore downloads from a CDN.

Other criteria may be used to determine which IP video to download froma CDN. For example, a video with a lesser estimated download time may beselected. As another example, historical viewing patterns may suggestthat a meta-channel associated with an IP video may be more likely to beselected by a user than a meta-channel associated with a different IPvideo, and the IP video associated with the more-likely-to-be-selectedmeta-channel is selected to be downloaded from the CDN.

If an IP video scheduled to be presented on a meta-channel is followedby a second IP video, the order of the presentation of the two IP videoscan be reversed on the meta-channel. For example, IP video “7” followsIP video “6” on meta-channel 2304 e (e.g., meta-channel “N”). The orderof the presentations of IP video “7” and IP video “6” may be reversed,for example, if download of IP video “6” may not complete before thetime when IP video “6” is scheduled to be played (e.g., 5 p.m.) and if adownload of IP video “7” may complete before the time when IP video “6”is scheduled to be played. For example, an action 2326 e indicates thatdownload of IP video “7” from a PNS has been started, and the estimateddownload time remaining (e.g., 10 minutes) indicates that the downloadof IP video “7” may complete before 5 p.m. The estimated download timeremaining of 20 minutes for IP video “6”, however, indicates that thedownload of IP video “6” may not complete before the scheduled starttime of IP video “6” (e.g., 5 p.m.).

As shown in FIG. 23C, at 5 p.m., progress of downloads may continue tobe monitored and one or more actions may be performed in response to themonitoring. The downloads of IP videos “2” and “7” have been detected ascompleted, as indicated by actions 2328 a and 2328 b, respectively. Theaction 2328 a also indicates that IP video “2” will be played if theuser selects meta-channel “1”. The action 2328 b indicates that IP video“7” will be played if the user selects meta-channel “N”. Similarly,actions 2328 c-e indicate that an IP video “2”, “3”, or “4” will beplayed if a corresponding meta-channel (e.g., meta-channels “2”, “3”,and “4”, respectively) is selected.

As indicated by an action 2328 f, an updated estimated download timeremaining of 5 minutes has been computed for IP video “6”. As discussedabove, since IP video “6” is not ready for playing at its scheduledstart time of 5 p.m., IP video “6” has been “swapped” with IP video “7”,such that IP video “7” is now scheduled to be presented at 5 p.m., andwill be played if the user selects meta-channel “N” (as indicated byaction 2328 b).

FIG. 24 illustrates a system 2400 for downloading content. The system2400 includes a meta-channel server 2402, a content delivery network(CDN) 2404, a public network source (PNS) 2406, and an Internet digitalmedia adapter (DMA) 2408, all connected to a network 2410. The InternetDMA 2408 may receive Internet video or other content over the network2410, from either the CDN 2404 or the PNS 2406. Video content mayinclude video files, video feeds (e.g., podcasts), or other content suchas BitTorrent files. Received video content can be stored in electronicstorage 2411 included in the Internet DMA 2408. Received video contentcan be presented on a display device 2412 (e.g., television screen,computer monitor, etc.) connected to the Internet DMA 2408.

The PNS 2406 is a source of content that is available free of charge,such as content available over the Internet. A CDN 2404 is a network ofcooperating devices optimized (e.g., for performance, scalability, andcost efficiency) to deliver content, such as video or audio content, forexample, to client devices, possibly incurring a fee. Generally,download speeds from a CDN are faster than download speeds from a PNS.The network 2410 may be one or more public or private, wired or wirelessnetworks, such as the Internet, or may be a Session Initiated Protocol(SIP) network such as the PsipTN network offered by TelTel.

The meta-channel server 2402 can communicate, over the network 2410,meta-channel information including a list of user-defined meta-channels,to the Internet DMA 2408 or to other devices such as a meta-channel basestation (not shown). Meta-channel information may be stored in andretrieved from a meta-channel database 2414.

FIG. 25 is a flowchart illustrating a computer-implemented process 2500for downloading content for viewing using a media system. Briefly, thecomputer-implemented process 2500 includes identifying a network-basedvideo scheduled to be played at a particular time, identifying multiplesources from which the network-based video is available for downloading,selecting an initial source from which to download the network-basedvideo, initiating a process to download the network-based video from theinitial source, monitoring progress of the download of the network-basedvideo from the initial source, determining that an estimated timeremaining for the download of the network-based video from the initialsource to complete does not enable viewing of the network-based videowithout interruption, selecting an alternative source from which todownload at least a portion of the network-based video, and initiating asecond process to download at least the portion of the network-basedvideo from the alternate source.

In further detail, when the process 2500 begins, a network-based videoscheduled to be played at a particular time is identified (2502). Forexample, a video scheduled to be played at 5 p.m. may be identified. Asanother example, a video such as one of the IP videos “2” through “7”described by content entries 2306 a-g (see FIG. 23A) may be identified.

After a network-based video has been identified, multiple sources fromwhich the network-based video is available for downloading areidentified (2504). For example, a video may be available for downloadingfrom a PNS (e.g., using the Internet) and from a CDN.

An initial source from which to download the network-based video isselected (2506). For example, a PNS may be selected as an initial sourcewhen the time remaining until the particular time at which thenetwork-based video is scheduled to be played exceeds an estimateddownload time of the network-based video from the PNS.

A process is initiated to download the network-based video from theinitial source (2508). For example, if the initial source is a PNS, aconnection may be made with an Internet server (e.g., Youtube), and adownload process may be initiated to download the video. The video maybe downloaded, for example, to an Internet DMA (Digital Media Adapter).

Progress of the download of the network-based video from the initialsource is monitored (2510). For example, an amount of time remaininguntil the particular time at which the network-based video is scheduledto be played may be determined, and it may be determined whether theestimated amount of time remaining for the download of the network-basedvideo from the initial source to complete exceeds the amount of timeremaining until the particular time at which the network-based video isscheduled to be played.

If the estimated amount of time remaining for the download of thenetwork-based video from the initial source to complete exceeds theamount of time remaining until the particular time at which thenetwork-based video is scheduled to be played, it is determined that theestimated time remaining for the download of the network-based videofrom the initial source to complete does not enable viewing of thenetwork-based video without interruption (2512).

For example, in the previously-discussed FIG. 23A, IP video “2” isscheduled to be played at 5 p.m. At 4 p.m., an estimated amount of timeremaining for the download of IP video “2” to complete from a PNS iscomputed as 30 minutes. At 4 p.m., the amount of time remaining until IPvideo “2” is scheduled to be played is 60 minutes. The 30-minutedownload time does not exceed the 60-minute time remaining until IPvideo “2” is scheduled to be played, so IP video “2” may be downloadedfrom the PNS and IP video “2” may be viewed at 5 p.m. withoutinterruption.

In contrast, in the previously-discussed FIG. 23B, at 4:15 p.m., anestimated amount of time remaining for the download of IP video “4” iscomputed as 50 minutes. At 4:15 p.m., the amount of time remaining untilIP video “4” is scheduled to be played is 45 minutes. The 50-minutedownload time exceeds the 45-minute time remaining until IP video “4” isscheduled to be played, so IP video “4”, in this example, cannot bedownloaded from the PNS for viewing at 5 p.m. without interruption.

In response to determining that the estimated amount of time remainingfor the download of the network-based video from the initial source tocomplete does not enable viewing of the network-based video at theparticular time without interruption, an alternative source from whichto download at least a portion of the network-based video is selected(2514). For example, a CDN may be selected to download at least aportion of the network-based video. Referring to FIG. 23B, a CDN may beselected to download at least a portion of the IP video “4” at 4:15 p.m.

A second process is initiated to download at least the portion of thenetwork-based video from the alternate source (2516). For example,referring to FIG. 23B, at least a portion of the IP video “4” may bedownloaded from the CDN. In some implementations, a remaining portion ofthe network-based video that has not been downloaded from the initialsource is identified. A second process may be initiated to download theremaining portion of the network-based video from the alternativesource. The initial portion of the network-based video downloaded fromthe initial source may be combined with the remaining portion of thenetwork-based video downloaded from the alternative source. The combinedinitial portion and remaining portion may be stored in electronicstorage associated with the media system. The media system may becontrolled to play the network-based video at the particular time usingthe combined initial portion and remaining portion of the network-basedvideo. In some implementations, the entire network-based video may bedownloaded from the alternative source.

FIG. 26 is a flowchart illustrating a computer-implemented process 2600for downloading content for viewing using a media system. Briefly, thecomputer-implemented process 2600 includes: identifying multiplenetwork-based videos scheduled to be played at a first time; initiatingdownload of the multiple network-based videos from a first source;monitoring progress of the downloads of the multiple network-basedvideos from the first source; based on the monitoring, determining thatdownload of at least two of the multiple network-based videos need to bechanged from the first source to a second source, to enable viewing atthe first time without interruption; accessing at least one rule fordownloading network-based videos from the second source; analyzing theat least two network-based videos with respect to the at least one rule;identifying a first subset to change from the first source to the secondsource and a second subset to maintain with the first source, based onthe analysis; initiating download of at least a portion of the firstsubset of network-based videos from the second source; and maintainingdownload of the second subset of network-based videos from the firstsource.

In further detail, when the process 2600 begins, multiple network-basedvideos scheduled to be played at a first time are identified (2602). Forexample, referring to FIG. 23A, IP videos “2” through “6” scheduled tobe played at 5 p.m. may be identified.

After videos have been identified, download of the multiplenetwork-based videos from a first source is initiated (2604). Forexample, download of the multiple network-based videos may be initiatedfrom a PNS without incurring a charge.

Progress of the downloads of the multiple network-based videos from thefirst source is monitored (2606). For example, as discussed above withrespect to FIG. 25, estimated amounts of download time remaining foreach video may be compared to time remaining until the network videosare scheduled to be played.

Based on the monitoring, it may be determined that download of at leasttwo of the multiple network-based videos need to be changed from thefirst source to a second source to enable viewing at the first timewithout interruption (2608). For example, for each of at least twovideos, an estimated amount of download time remaining from the firstsource may exceed the time remaining until the corresponding video isscheduled to be played. In this example, download of the at least twovideos may need to be changed to a faster service, such as to a CDN thatcharges for downloads, to enable viewing at the first time withoutinterruption.

At least one rule is accessed for downloading network-based videos fromthe second source (2610). For example, a rule may define a number (e.g.,5) of network-based videos that may be downloaded from the second sourceduring a particular time frame. For example, users may have a monthlyquota or monthly cost limit of downloads based on a customer agreement.As another example, a rule may define criteria used for selectingnetwork-based videos to prioritize when downloading from the secondsource. For example, a rule may prioritize downloading videos from thesecond source based on longer remaining download times, historicalviewing patterns of a user, or whether alternative content isunavailable.

After one or more rules are accessed, the at least two network-basedvideos are analyzed with respect to the at least one rule (2612). Forexample, for a rule which defines a number of network-based videos thatmay be downloaded from the second source during a particular time frame,it may be determined that downloading all of the at least twonetwork-based videos from the second source would result in exceedingthe number of network-based videos that may be downloaded from thesecond source during the particular time frame. A number ofnetwork-based videos that have been downloaded from the second sourceduring the particular time frame may be tracked, and a service level ofa user may be determined for which the multiple network-based videos arescheduled to be played.

The number of network-based videos that may be downloaded from thesecond source during the particular time frame may be adjusted based onthe service level of the user. For example, if a user is allowed todownload two videos during a particular timeframe, and if one video hasalready been downloaded during the timeframe, and if a total of threevideos were to be downloaded during the timeframe, the count of threevideos to download during the timeframe may be adjusted to two videos intotal (e.g., one more additional download) to avoid exceeding the numberof network-based videos that may be downloaded from the second sourceduring the particular time frame.

When the tracked number of network-based videos that have beendownloaded from the second source during the particular time framereaches the number of network-based videos that may be downloaded fromthe second source during the particular time frame, a message may beprovided to the user indicating that the user may increase the servicelevel to increase the number of network-based videos that may bedownloaded from the second source during the particular time frame. Theuser may be enabled to, in response to the message, electronicallyincrease the service level using the media system. The message may bedisplayed, for example, on a display screen included in the mediasystem. The user may respond to the message, for example, by pressingbuttons on a remote control device. The increase of a service level maycorrespond to an increase in a service fee.

After rules are analyzed, a first subset to change from the first sourceto the second source and a second subset to maintain with the firstsource are identified, based on the analysis (2614). For example, for arule which prioritizes downloading from the second source based onlonger remaining download times, a first subset of videos may beidentified which includes videos having longer estimated remainingdownload times, and a second subset of videos may be identified whichincludes videos having shorter estimated download times.

As another example, for a rule which prioritizes downloading from thesecond source based on historical viewing patterns, a first subset ofvideos may be identified which includes videos which, based onhistorical viewing patterns, are more likely to be selected by the userat the particular time, and a second subset of videos may be identifiedwhich includes videos which, based on historical viewing patterns, areless likely to be selected by the user at the particular time. Forexample, a user may have historically selected, during particular timesof day, a certain type of content, such as crime drama, more often thanother types of content, such as comedy.

For rules which limit downloads based on a cost limit, a first subset ofvideos may be identified which maximizes the number of downloads fromthe second source without exceeding a cost limit. For example, a usermay have $5 remaining to spend on downloads, and potential videos todownload from a CDN may cost $2, $3, and $4, respectively. A $2 videoand a $3 video may be identified as being included in a first subset,and a $4 video may be identified as being included in a second subset.

Subsets of videos may be identified based on a potential to rearrangecontent. For example, if a first video with a potentially long downloadtime is followed on a meta-channel by a second video with a shortdownload time, the order of presentation of the second and first videosmay be reversed and the first video may be included in a subset ofvideos to be downloaded by a PNS (e.g., the first video may continue tobe downloaded while the second video plays). Depending on the timeremaining until the first video was scheduled to be played, the secondvideo may be included in either a subset of videos to be downloaded froma PNS, or a subset of videos to be downloaded from a CDN. As anotherexample, a video which is followed on a meta-channel by a live broadcastmay be identified as being included in a first subset of videos to bedownloaded from a CDN (e.g., since the live broadcast content might notbe able to be rearranged).

After first and second subsets are identified, download is initiated ofat least a portion of the first subset of network-based videos from thesecond source (2616). For example, download of at least a portion of thefirst subset of videos from a CDN may be initiated. Download of thesecond subset of network-based videos from the first source ismaintained (2618). For example, download of the second subset of videosmay be maintained as downloading from a PNS.

FIG. 27 is a schematic diagram of an example of a generic computersystem 2700. The system 2700 includes a processor 2710, a memory 2720, astorage device 2730, and an input/output device 2740. Each of thecomponents 2710, 2720, 2730, and 2740 are interconnected using a systembus 2750. The processor 2710 is capable of processing instructions forexecution within the system 2700. In one implementation, the processor2710 is a single-threaded processor. In another implementation, theprocessor 2710 is a multi-threaded processor. The processor 2710 iscapable of processing instructions stored in the memory 2720 or on thestorage device 2730 to display graphical information for a userinterface on the input/output device 2740.

The memory 2720 stores information within the system 2700. In oneimplementation, the memory 2720 is a computer-readable medium. Inanother implementation, the memory 2720 is a volatile memory unit. Inyet another implementation, the memory 2720 is a non-volatile memoryunit.

The storage device 2730 is capable of providing mass storage for thesystem 2700. In one implementation, the storage device 2730 is acomputer-readable medium. In various different implementations, thestorage device 2730 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device.

The input/output device 2740 provides input/output operations for thesystem 2700. In one implementation, the input/output device 2740includes a keyboard and/or pointing device. In another implementation,the input/output device 2740 includes a display unit for displayinggraphical user interfaces.

The features described can be implemented in digital electroniccircuitry, or in computer hardware, or in combinations of computerhardware and firmware or software. The apparatus can be implemented in acomputer program product tangibly embodied in a machine-readable storagedevice, for execution by a programmable processor; and method steps canbe performed by a programmable processor executing a program ofinstructions to perform functions of the described implementations byoperating on input data and generating output. The described featurescan be implemented advantageously in one or more computer programs thatare executable on a programmable system including at least oneprogrammable processor coupled to receive data and instructions from,and to transmit data and instructions to, a data storage system, atleast one input device, and at least one output device. A computerprogram is a set of instructions that can be used, directly orindirectly, in a computer to perform a certain activity or bring about acertain result. A computer program can be written in any form ofprogramming language, including compiled or interpreted languages, andit can be deployed in any form, including as a stand-alone program or asa module, component, subroutine, or other unit suitable for use in acomputing environment.

Suitable processors for the execution of a program of instructionsinclude, by way of example, both general and special purposemicroprocessors, and the sole processor or one of multiple processors ofany kind of computer. Generally, a processor will receive instructionsand data from a read-only memory or a random access memory or both. Theessential elements of a computer are a processor for executinginstructions and one or more memories for storing instructions and data.Generally, a computer will also include, or be operatively coupled tocommunicate with, one or more mass storage devices for storing datafiles; such devices include magnetic disks, such as internal hard disksand removable disks; magneto-optical disks; and optical disks. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as EPROM, EEPROM, and flashmemory devices; magnetic disks such as internal hard disks and removabledisks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Theprocessor and the memory can be supplemented by, or incorporated in,ASICs (application-specific integrated circuits).

To provide for interaction with a user, the features can be implementedon a computer having a display device such as a CRT (cathode ray tube)or LCD (liquid crystal display) monitor for displaying information tothe user and a keyboard and a pointing device such as a mouse or atrackball by which the user can provide input to the computer.

The features can be implemented in a computer system that includes aback-end component, such as a data server, or that includes a middlewarecomponent, such as an application server or an Internet server, or thatincludes a front-end component, such as a client computer having agraphical user interface or an Internet browser, or any combination ofthem. The components of the system can be connected by any form ormedium of digital data communication such as a communication network.Examples of communication networks include, e.g., a LAN, a WAN, and thecomputers and networks forming the Internet.

The computer system can include clients and servers. A client and serverare generally remote from each other and typically interact through anetwork, such as the described one. The relationship of client andserver arises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

Although a few implementations have been described in detail above,other modifications are possible. In addition, the logic flows depictedin the figures do not require the particular order shown, or sequentialorder, to achieve desirable results. In addition, other steps may beprovided, or steps may be eliminated, from the described flows, andother components may be added to, or removed from, the describedsystems. Accordingly, other implementations are within the scope of thefollowing claims.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the disclosure. Accordingly, otherimplementations are within the scope of the following claims.

What is claimed is:
 1. A method of controlling a media system in handling advertisements, the method comprising: detecting an advertisement on a selected content channel being experienced by a user using a media system; accessing, from electronic storage, advertisement preferences of the user; selecting secondary content based on the accessed advertisement preferences of the user; substituting the secondary content for the advertisement on the selected content channel; and controlling the media system to output the secondary content instead of the advertisement. 